实施例: http://jsfiddle.net/MAane/
当点击任何列表项时,我正在计算所述列表中有多少先前元素,但我需要的是能够计算DOM中所有li项之前的所有项目(所以如果我点击了第二个列表中的第2项,警报将是= 5)
$("ul li").click(function(){
var x=0;
$(this).prevAll("li").each(function() {
x++;
});
alert(x);
});
我可能会经历一个parent(),prev()等循环,但考虑到这些列表是动态的 - 所以我不是真的想要修复这个例子本身,但实际上可以爬过任何DOM。
答案 0 :(得分:6)
您可以使用index()
,并检查当前点击的LI元素集合中的位置:
$("ul li").on('click', function(){
var x = $("ul li").index(this);
alert(x);
});
答案 1 :(得分:0)
另一种解决方案:
$("ul").each(function () {
$(this).find('li').each(function (i, e) {
$(e).click(function () {
alert(i);
});
});
});