21

クエリセレクターの結果を繰り返したい。

HTML コード

<nav id="navigation">
        <a href="#" tabindex="1" class="active_nav">nav1</a>
        <a href="#" tabindex="2">nav2</a>
        <a href="#"tabindex="3">nav3</a>
</nav>

私がjavascriptを使うとき

alert($("#navigation >a")[0]);

結果はタグahref 属性です。理由はわかりません。

4

6 に答える 6

30

使用する$.each

$("#navigation > a").each(function() {

     console.log(this.href)
});

$('#navigation > a')[0]
      ^              ^---- Selects the 1st dom object from the jQuery object
      |                    that is nothing but the index of the element among 
      |                    the list of elements
      |-------  Gives you children of nav(3 anchor tags in this case)  which is a
                jQuery object that contains the list of matched elements
于 2013-07-18T07:28:59.923 に答える
3

If you want to iterate all <a> tags, you can use each function

$('#navigation >a').each(function() { 
    alert(this.href);
});

and if you only want to get the first <a> tag then use .eq()

alert($('#navigation >a').eq(0).attr('href');
于 2013-07-18T07:38:47.233 に答える
3

first()次のように使用します。

var element = $("#navigation>a").first();
console.log(element);

参照

于 2013-07-18T08:57:38.607 に答える
2

jQuery では、 のように index を使用する[0]と、DOM 要素にアクセスしていることになります。それが理由です

$("#navigation >a")[0]

<a>タグを返します。

jQueryセレクターの結果を反復するには、それぞれを使用します

$("#navigation >a").each(function(index, elem){
});
于 2013-07-18T07:30:54.367 に答える
2

each()次のように、この繰り返し に組み込みの jQuery を使用できます。

$("#navigation>a").each(function(index){
    console.log("I am " + index + "th element.");
    //and you can access this element by $(this)
});
于 2013-07-18T07:32:09.923 に答える
-1

使ってみて

console.log($("#navigation >a"))

代わりに、コンソールですべての結果を確認できるようにします (クロムでは cmd + alt + i )。

于 2013-07-18T07:29:16.080 に答える