1

ナビゲーション (ホーム) の最初のアンカーにクラス「アクティブ」を追加する際に問題が発生しています。

これが私のコードペンです - http://codepen.io/Kuzyo/pen/vbhDF

これが私のjQueryです:

$(document).ready(function() {
    var homeLink = $(".nav a")[0];
    console.log(homeLink);  
    homeLink.addClass("active");
    $("#home").addClass("center");  
});

これが(の質問部分に関連する)私のHTMLです:

<div class="header">
    <div class="holder clearfix">
        <ul class="nav">
            <li><a href="#home">Home</a></li>
            <li><a href="#about">About</a></li>
            <li><a href="#creature">Creature</a></li>
            <li><a href="#landscape">Landscape</a></li>
            <li><a href="#contact">Contact</a></li>
        </ul>
    </div>
</div> 

誰かが私が間違っていることを見ることができますか?

4

7 に答える 7

4

変化する

var homeLink = $(".nav a")[0];

に:

var homeLink = $(".nav a").first();

この場合は必要になりますが.first()、そのグループ化で他のアンカーをターゲットにする場合は.eq().

JavaScript オブジェクトで jQuery メソッドを使用しようとしたため、コンソール エラーが発生しました。

「オブジェクト [オブジェクト HTMLAnchorElement] にはメソッド 'addClass' がありません」

コペンはこちら。

于 2013-07-06T17:45:30.867 に答える
3

$(".nav a")[0]jQuery オブジェクトではなく DOM 要素を返します。.first()代わりに使用する必要があります

于 2013-07-06T17:45:40.757 に答える
2
var homeLink = $("ul.nav li a").first();
于 2013-07-06T17:46:04.073 に答える
1

そのいくつかのオプションがあります

var homeLink = $(".nav a")[0];  // Get first DOM element, no jquery Object

/* Add jquery function */
$(homeLink).addClass("active");
    $("#home").addClass("center");

またはより良い方法

var homeLink = $(".nav a").first();   // Get jquery Object

またはまた

var homeLink = $(".nav a").eq(0);      // Cero position is first element
于 2013-07-06T17:51:47.410 に答える
0

これを使用する必要があります:

var homeLink = $(".nav a:first");
于 2013-07-06T17:51:58.757 に答える