我正在尝试获取 jQuery 集中元素的位置。
我希望能够做这样的事情:
$('ul').find('a').indexOf('.active');
并获取's.active
集合中的位置。a
有没有类似indexOf()
jQuery 的函数?该index()
方法不起作用
我正在尝试获取 jQuery 集中元素的位置。
我希望能够做这样的事情:
$('ul').find('a').indexOf('.active');
并获取's.active
集合中的位置。a
有没有类似indexOf()
jQuery 的函数?该index()
方法不起作用
如果您将 jQuery set ( $searchFor
) 作为参数传递给index
另一个 jQuery set ( $searchIn
) 的方法,即
$searchIn.index($searchFor)
它将返回$searchFor
集合中的索引$searchIn
在您的示例中:
$('ul a').index($('ul a.active'));
</p>
你只需要给index
函数一个 jQuery 对象:
var elements = $('ul a');
var index = elements.index(elements.filter('.active')); // 2
alert(index);
现场演示 </p>
开箱即用没有这样的功能,可以像这样轻松完成:
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')
但是,获取位置是什么意思?你是说位置吗?或网址?
如果你想知道你click
在哪一个可以说..你会$(this)
在你的事件函数中使用。这是一个示例,如果该类有多个,则返回您单击的元素的当前位置.active
:
要获得职位:
$('ul a.active').click(function(){
alert( $(this).position() );
})
要获取 URL 位置:
$('ul a.active').click(function(){
alert( $(this).attr('href') );
})