获取div的索引,类等于活动

时间:2013-09-13 12:25:03

标签: javascript jquery twitter-bootstrap indexing find

我有一个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”,所以他找不到这个项目......但为什么呢?

有谁知道我做错了什么?

2 个答案:

答案 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');