jQuery indexOf函数?
我正在尝试在jQuery集中获取元素的位置。
这是我到目前为止所尝试的内容。
我希望能够做到这样的事情:
$('ul').find('a').indexOf('.active');
并在。的集合中获取.active
的位置。
是否有像jQuery的indexOf()
函数? index()
方法不起作用
如果你将一个jQuery集( $searchFor
)作为参数传递给另一个jQuery集( $searchIn
)的index
方法,即
$searchIn.index($searchFor)
它将在set $searchIn
$searchFor
$searchIn
在你的例子中:
$('ul a').index($('ul a.active'));
您只需要为index
函数提供一个jQuery对象:
var elements = $('ul a'); var index = elements.index(elements.filter('.active')); // 2 alert(index);
现场演示
开箱即用没有这样的function ,它可以像这样轻松完成:
var index = -1; $('ul a').each(function(i){ if ($(this).hasClass('active')){ index = i; return false; } }); alert(index);
现场演示
你的逻辑是合理的,你只是抓住了错误的元素: http : //jsfiddle.net/xz9dW/19/
var index = $('ul a.active').closest('li').index();
a
链接没有index()
值,因为它没有兄弟; 你必须抓住li
你可以通过在选择器中询问它来做到这一点:
$('ul a.active')
但是你得到这个位置是什么意思? 你的意思是位置? 或URL?
如果你想知道你click
哪一个让我们说..你会在你的事件function中使用$(this)
。 下面是一个示例,它返回您单击的元素的当前位置,如果有多个.active
类:
获得这个职位:
$('ul a.active').click(function(){ alert( $(this).position() ); })
要获取URL位置:
$('ul a.active').click(function(){ alert( $(this).attr('href') ); })