2

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

http://jsfiddle.net/tnQne/

我的js在这里

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

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

4

2 回答 2

8

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

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

jsFiddle


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

于 2012-09-21T18:30:34.853 回答
2

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

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

jsFiddle 示例

于 2012-09-21T18:36:31.857 回答