3

私はこのようなHTMLツリーを持っています

<div class="container">
    <h1>title</h1>
    <div class="item">1</div>
    <div class="item">2</div>
    <h1>title</h1>
    <div class="item">3</div>
    <div class="item">4</div>
    <div class="item">5</div>
    <div class="item">6</div>
    <div class="item">7</div>
    <h1>title</h1>
    <div class="item">8</div>
    <div class="item">9</div>
    <div class="item">10</div>
</div>

divクラスアイテム内の画像が選択されるたびに実行されるクリック機能がありますが、アイテムのクラスが隣り合っているdivの数を数えることはできますか?

つまり、上記の例で「1」をクリックすると、2 が返されます。h1 の前に 2 つの div があるためです。項目 7 をクリックすると、5 などが返されます。

それは可能ですか?

ありがとう

4

4 に答える 4

5

これはあなたのために働くでしょう:

$('.item').on('click',function(){
    var h1 = $(this);
    while(!h1.is('h1')) h1 = h1.prev();
    alert(h1.nextUntil('h1').length);
});

デモ

于 2013-04-12T09:37:07.940 に答える
2
$('.item').click(function () {
        alert($(this).prevAll('h1').first().nextUntil('h1').length);

});

JSフィドルリンク

于 2013-04-12T10:19:08.063 に答える