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' 的项目索引。在此示例中,它将是第二个 div,因此 index = 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 回答
1

您始终可以将数据属性添加到目标元素。像这样的东西。

<div class="item active" data-something="1">
var index=$('.active').data('something');
于 2013-09-13T12:48:34.333 回答