使用jQuery选择带有类的下一个元素

时间:2013-02-15 17:15:12

标签: jquery jquery-selectors

为了简化这一点,我有两个“精选”块,第一个加载了features-active类。

在计时器(在jQuery中)之后,我想从第一个元素中删除features-active类,并将其应用于.features类的 next

这是我的HTML:

<!-- Feature 1 -->

<div class="span3">
  <div class="features drop-shadow features-active">
    <h4><strong>SUPER</strong> RESPONSIVE</h4>
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua Lorem ipsum dolor sit amet...</p>
  </div>
</div>

<!-- Feature 2 -->

<div class="span3">
  <div class="features drop-shadow">
    <h4><strong>SUPER</strong> RESPONSIVE</h4>
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua Lorem ipsum dolor sit amet...</p>
  </div>
</div>

我唯一的问题(我今天感到迟钝)是 - 在我的计时器触发后,如何选择.features之后的下一个div.features-active元素?

这是我的jQuery不起作用:

var nextFeature = $('div.features-active').next('div.features');

5 个答案:

答案 0 :(得分:3)

您需要在节点的父级上应用.next()

var nextFeature = $('div.features-active').parent('div.span3')
                                          .next('div.span3')
                                          .children('div.features');

答案 1 :(得分:1)

没有下一个.features,他们有不同的父母?

var nextFeature = $('div.features-active').closest('.span3')
                                          .next('.span3')
                                          .find('div.features')

答案 2 :(得分:1)

使用.next(),。parent(),。childrenren(),。find()等代替所有浪费的开销,只需使用特色元素的索引。

var idx = 1;
setInterval(function () {
    $('div.features').removeClass('features-active');
    $('div.features').eq(idx).addClass('features-active');
    idx++;
}, 2000);

<强> jsFiddle example

答案 3 :(得分:0)

我认为您正在寻找:http://jsfiddle.net/umTPw/

setTimeout(function () {
   $('.features').removeClass('features-active').promise().done(function () {
      $(this).parent().next().find('.features').addClass('features-active');
   });
}, 2000);

答案 4 :(得分:-1)

这个怎么样:

var nextFeature = $('div.features-active').next().find('div.features');