1

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

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

<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');

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

4

5 回答 5

6

尝试这个:

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

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

$('ul li:has(a.active)').index();
于 2012-09-14T19:00:13.133 回答
4

尝试:

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

jsFiddle 示例

或者

console.log ($('ul li:has(a.active)').index() );​
于 2012-09-14T19:00:22.243 回答
0

这应该这样做:

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

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

为了完整起见,jsfiddle

于 2012-09-14T19:05:40.723 回答
0

怎么样:

$('li').index($('.active').parent())
于 2012-09-14T19:18:51.997 回答
-1

$("ul li a").each(function(i){

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

});​</p>

我希望它能解决你的问题

于 2012-09-14T19:03:27.297 回答