在jQuery对象中查找元素的位置

时间:2012-09-14 18:58:37

标签: javascript jquery

我需要在jQuery集合中找到特定的元素位置。

例如,在元素集合中,我需要知道具有“active”类的元素的数字位置。

<ul>
    <li><a href="#"></a></li>
    <li><a class="active" href="#"></a></li>
    <li><a href="#"></a></li>
</ul>

我假设使用索引将是要走的路,但无论活动的位置如何,以下都返回0。

$('ul li a').index('.active');

有什么简单的方法可以做到这一点吗?

5 个答案:

答案 0 :(得分:6)

试试这个:

$('ul li a.active').index();

请注意,即使使用正确的语法,此代码也始终返回0,因为li标记中只有一个锚链接,您可以找到parent li元素的索引。

$('ul li:has(a.active)').index();

答案 1 :(得分:4)

尝试:

$('ul li a').each(function(i) {
    if ($(this).hasClass('active')) console.log(i);
});​

<强> jsFiddle example

或者

console.log ($('ul li:has(a.active)').index() );​

答案 2 :(得分:0)

这应该做:

 $('ul li a').index($('ul li a.active'));

如果将DOM元素或jQuery对象传递给index,它将返回原始集合中该元素/对象的位置。

为了完整起见,

jsfiddle

答案 3 :(得分:0)

怎么样:

$('li').index($('.active').parent())

答案 4 :(得分:-1)

$(“ul li a”)。each(function(i){

if($(this).hasClass("active")){
 alert(i)        
}

});

我希望它能解决你的问题