【问题标题】:Get index of div with class equal to active获取类等于 active 的 div 的索引
【发布时间】:2013-09-13 12:25:03
【问题描述】:

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

有谁知道我做错了什么?

【问题讨论】:

    标签: javascript jquery twitter-bootstrap indexing find


    【解决方案1】:

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

    另外active 不是item 的继承者,它是item 元素的附加过滤器 - 所以你需要使用.filter() 而不是.find()

    var activediv = $('.item').filter('.active');//or $('.item.active')
    var index = activediv.index();
    

    【讨论】:

    • 修复了这个问题,但我仍然得到一个“-1”的索引。所以他找不到那个项目。但为什么呢?
    • 谢谢,成功了!尽可能接受答案!
    【解决方案2】:

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

    <div class="item active" data-something="1">
    var index=$('.active').data('something');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-09
      • 2018-02-19
      • 1970-01-01
      相关资源
      最近更新 更多