0

例: http://jsfiddle.net/MAane/

リスト項目のいずれかをクリックすると、そのリストにある以前の要素の数を数えていますが、必要なのは、クリックした項目の前の DOM 内のすべての項目をカウントできるようにすることです (したがって、項目をクリックした場合2 番目のリストの番号 2 の場合、アラートは =5 になります)

$("ul li").click(function(){
    var x=0;
    $(this).prevAll("li").each(function() {
       x++;
    });
    alert(x);
});

おそらくparent()、prev()などのループを通過できますが、これらのリストは動的であると考えてください。したがって、この例自体の修正を実際に探しているわけではありませんが、実際にクロールできるものを探しています任意のDOM。

4

2 に答える 2

6

そのために使用index()して、現在クリックされている LI 要素のコレクション内の場所を確認できます。

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

フィドル

于 2013-09-20T16:30:24.087 に答える
0

別の解決策:

$("ul").each(function () {
    $(this).find('li').each(function (i, e) {
        $(e).click(function () {
            alert(i);
        });
    });
});
于 2013-09-20T16:35:07.210 に答える