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