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

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

http://jsfiddle.net/tnQne/

我有的js就在这里

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

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

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

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

的jsfiddle


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

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

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

jsFiddle示例