获取我相对于jquery集合单击的元素的索引

时间:2012-09-21 18:28:03

标签: javascript jquery click

我这里有一个小提琴,非常简单。

http://jsfiddle.net/tnQne/

我拥有的js在这里

$('section a').on('click', function() {
    alert($(this).index());
});

它始终返回0,因为在部分内只有1个锚标记。我想要的是它返回jquery集合中被点击元素的位置。因此,如果我点击最后一个锚点,它将返回2(基于0)

2 个答案:

答案 0 :(得分:8)

您需要存储原始集合并在该集合上调用index

var links = $('section a').on('click', function() {
    alert(links.index(this));
});

jsFiddle


您的代码存在的问题是$(this).index()将获取元素相对于其兄弟的索引。由于a元素没有任何兄弟,因此索引始终为0。我链接的API页面解释了如果DOM元素是参数,index函数如何工作。

答案 1 :(得分:2)

lonesomeday有一个很好的方法,但另一种方式是:

$('section a').on('click', function(e) {
    alert( $.inArray(e.target, $('section a')) );
});​

<强> jsFiddle example