我有一个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>
现在当我点击时,为了前。一个按钮。我想拥有class ='active'的项目索引。在这个例子中,它将是第二个div,因此index = 1(从0开始)。
要获得class =“active”的div,我这样做:
var activediv = $('.item').find('.active');
但是当我想找到这样的元素索引时:
var index = activediv.index();
我的控制台总是得到“-1”,所以他找不到这个项目......但为什么呢?
有谁知道我做错了什么?
答案 0 :(得分:4)
.index()是包装元素中的一个函数。
同样active
不是item
的后果,它是对item
元素的额外过滤器 - 因此您需要使用.filter()
代替.find()
}
var activediv = $('.item').filter('.active');//or $('.item.active')
var index = activediv.index();
答案 1 :(得分:1)
您始终可以将数据属性添加到目标元素。 这样的事情。
<div class="item active" data-something="1">
var index=$('.active').data('something');