jQuery - 获取具有特定类的元素的索引

40
我有一个如下所示的列表:
<li> .... </li>
<li> .... </li>
<li> .... </li>
<li class="active"> .... </li>
<li> .... </li>
我想要找到具有“active”类元素的项目在列表中的索引(编号)。在这种情况下,索引将是4(或者如果我们从0开始,则为3)。我应该如何做到这一点?
2个回答

78

使用.index()方法:

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

这里有一个可工作的示例:

http://jsfiddle.net/EcZZL/

编辑 - 根据Nick的建议添加了 .index() 的 API 链接。


1
如果选择器是 $(this).hasClass("myClass") 会怎么样?它没有 index() 函数。 - SearchForKnowledge
var g = parseInt($('div.slideIsActive').index()) + 1; 给我返回了 1,但是这个 var index = $(this).find("div.slideIsActive").index() + 1; 却给我返回了 0。我该如何修改代码才能使用 this 关键字来得到 1 呢? - SearchForKnowledge

14

就像这样:

var index = $("ul li.active").index();

.index()无需参数即可返回元素相对于其同级的索引,这正是您在此情况下所需的。


2
看起来今天早上我是第一个喝咖啡的,尼克 ;) - HurnsMobile
3
@HurnsMobile - 确实 :) 如果可能,请确保提供链接到您使用的适当函数,这有助于未来的谷歌搜索者...特别是对于.index(),因为它有几个非常不同的用法 :) - Nick Craver

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接