我这里有一个小提琴,非常简单。
我拥有的js在这里
$('section a').on('click', function() {
alert($(this).index());
});
它始终返回0,因为在部分内只有1个锚标记。我想要的是它返回jquery集合中被点击元素的位置。因此,如果我点击最后一个锚点,它将返回2(基于0)
答案 0 :(得分:8)
您需要存储原始集合并在该集合上调用index
。
var links = $('section a').on('click', function() {
alert(links.index(this));
});
您的代码存在的问题是$(this).index()
将获取元素相对于其兄弟的索引。由于a
元素没有任何兄弟,因此索引始终为0
。我链接的API页面解释了如果DOM元素是参数,index
函数如何工作。
答案 1 :(得分:2)
lonesomeday有一个很好的方法,但另一种方式是:
$('section a').on('click', function(e) {
alert( $.inArray(e.target, $('section a')) );
});
<强> jsFiddle example 强>