0

私はTwitterのブートストラップカルーセルを持っています:

<div id="myCarousel" class="carousel slide">
    <div class="carousel-inner">
       <div class="item">
            <div id="container"></div>
       </div>
       <div class="item active">
            <div id="container2"></div>
       </div>
       <div class="item">
            <div id="container3"></div>
       </div>
    </div>
    <!-- Controls -->
    <a class="left carousel-control" href="#myCarousel" data-slide="prev">«</a>
    <a class="right carousel-control" href="#myCarousel" data-slide="next">»</a>
</div>

クリックすると、たとえば。ボタン。class = 'active' のアイテムのインデックスを取得したいと思います。この例では、2 番目の div になるため、インデックス = 1 (0 から開始) になります。

class = "active" で div を取得するには、次のようにします。

var activediv = $('.item').find('.active');

しかし、次のような要素のインデックスを見つけたい場合:

var index = activediv.index();

コンソールに常に「-1」が表示されるため、彼はアイテムを見つけることができません...しかし、なぜですか?

誰かが私が間違っていることを知っていますか?

4

2 に答える 2

5

.index()はラッパー要素の関数です。

またactive、 の子孫ではなく、要素itemへの追加のフィルターです。そのため、代わりにitemを使用する必要があります.filter().find()

var activediv = $('.item').filter('.active');//or $('.item.active')
var index = activediv.index();
于 2013-09-13T12:26:34.983 に答える