-5

.index()jQuery の関数に問題があります。

DOMの概要:

<div class="one">
    <div class="two">
        <div class="three"></div>
        <div class="three"></div>
        <div class="three"></div>
    </div>
    <div class="threeB"></div>
    <div class="threeB"></div>
    <div class="threeB"></div>
</div>

<div class="one">
    <div class="two">
        <div class="three"></div>
        <div class="three"></div>
    </div>
    <div class="threeB"></div>
    <div class="threeB"></div>
</div>

<div class="one">
    <div class="two">
        <div class="three"></div>
        <div class="three"></div>
        <div class="three"></div>
    </div>
    <div class="threeB"></div>
    <div class="threeB"></div>
    <div class="threeB"></div>
</div>

ユーザーがどの をクリックしたかによって、いずれかthreeのが表示されます。関数でこれをやりたかったのですが、最初のもの以外はすべて失敗します。2 番目のクラスでは、2 つの s のインデックスが 3 と 4 になっています (目的の 0 と 1 ではなく)。一方、for s は思い通りに動作するようです。twothreeB.index()onethree.eq()threeB

three問題の前にいくつの s があったかを数えなくても、これを解決するためのきちんとした方法はありdivますか?

4

1 に答える 1

1

次のように機能しています。

$('.three').click(function(){
    $(this).parent().parent().find('.threeB').eq($(this).index())
        .css('background','green');
});

ここをチェックしてください:jsFiddle

于 2013-08-02T11:51:25.760 に答える