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

如果要迭代所有<a>标签,可以使用每个函数

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

如果您只想获取第一个<a>标签,请使用 .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 like[0]时,意味着您正在访问 DOM 元素。因此

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

返回<a>标签。

为了迭代一个 jQuery 选择器结果,使用每个

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

您可以使用内置的 jQueryeach()进行此迭代,如下所示:

$("#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 在 chrome 中)

于 2013-07-18T07:29:16.080 回答