我需要在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');
有什么简单的方法可以做到这一点吗?
答案 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
,它将返回原始集合中该元素/对象的位置。
答案 3 :(得分:0)
怎么样:
$('li').index($('.active').parent())
答案 4 :(得分:-1)
$(“ul li a”)。each(function(i){
if($(this).hasClass("active")){
alert(i)
}
});
我希望它能解决你的问题