jQuery indexOf function?



>我正在尝试获取jQuery集中元素的位置。

这是我到目前为止尝试过的。

我希望能够做这样的事情:

$('ul').find('a').indexOf('.active');

并获取.activea集合中的位置。

有没有类似于jQuery的indexOf()函数?index()方法不起作用

如果你将一个jQuery集($searchFor)作为参数传递给另一个jQuery集($searchIn)的index方法,即

$searchIn.index($searchFor)

它将返回集合$searchIn$searchFor的索引

在您的示例中:

$('ul a').index($('ul a.active'));

你只需要给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);

现场演示

你的逻辑是合理的,你只是抓住了错误的元素: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() );
 })

要获取网址位置,请执行以下操作:

 $('ul a.active').click(function(){
     alert( $(this).attr('href') );
 })

最新更新