获取类等于 active 的 div 索引

nie*_*lsv 0 javascript indexing jquery find twitter-bootstrap

我有一个 twitter bootstrap carousel:

<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>
Run Code Online (Sandbox Code Playgroud)

现在,当我点击时,例如。一个按钮。我想要带有 class = 'active' 的项目的索引。在此示例中,它将是第二个 div,因此 index = 1(从 0 开始)。

要使用 class = "active" 获取 div,我这样做:

var activediv = $('.item').find('.active');
Run Code Online (Sandbox Code Playgroud)

但是当我想像这样找到元素的索引时:

var index = activediv.index();
Run Code Online (Sandbox Code Playgroud)

我总是在我的控制台中得到“-1”,所以他找不到该项目......但为什么呢?

有谁知道我做错了什么?

Aru*_*hny 5

.index()是包装元素中的一个函数。

另外active是不是一个死者item,这是一个额外的过滤器的item元素-所以你需要使用.filter()的,而不是.find()

var activediv = $('.item').filter('.active');//or $('.item.active')
var index = activediv.index();
Run Code Online (Sandbox Code Playgroud)