jQuery indexOf函数?

时间:2012-05-02 00:41:13

标签: javascript jquery

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

Here's what I tried so far.

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

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

获取.active的{​​{1}}集中a的位置。

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

4 个答案:

答案 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);

Live DEMO


没有开箱即用的功能,它可以像这样轻松完成:

var index = -1;
$('ul a').each(function(i){
    if ($(this).hasClass('active')){
        index = i;
        return false;
    }
});

alert(index);

Live DEMO

答案 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') );
 })