计算DOM中所有先前出现的类

时间:2013-09-20 16:27:20

标签: javascript jquery

实施例: 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。

2 个答案:

答案 0 :(得分:6)

您可以使用index(),并检查当前点击的LI元素集合中的位置:

$("ul li").on('click', function(){
    var x = $("ul li").index(this);
    alert(x);
});

FIDDLE

答案 1 :(得分:0)

另一种解决方案:

$("ul").each(function () {
    $(this).find('li').each(function (i, e) {
        $(e).click(function () {
            alert(i);
        });
    });
});