jQuery - 计算元素,直到达到特定元素并停止计数

时间:2017-05-03 12:53:23

标签: javascript jquery

所以我想要实现的是以下代码计算siblings,但停在不符合要求的sibling

因此,举例来说波纹示例而不是计数中的6,它将返回4,因为它会从活动计数到第一个fieldset而不是percent class

类似于:$("fieldset.active").andSelf().siblings('fieldset.percent').stop().not('.percent').length;

Bellow是代码的工作起点。

var jump = $("fieldset.active").andSelf().siblings('fieldset.percent').length;

$('.result').html('Counted: '+jump);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<fieldset>
0 - dont Count
</fieldset>
<fieldset class="active">
1 - count me
</fieldset>
<fieldset class="percent">
2 - count me
</fieldset>
<fieldset class="percent">
3 - count me
</fieldset>
<fieldset class="percent">
4 - count me
</fieldset>
<fieldset>
5 Stop here - dont Count
</fieldset>
<fieldset class="percent">
6 - dont Count
</fieldset>
<fieldset class="percent">
7 - dont Count
</fieldset>
<fieldset>
8 - dont Count
</fieldset>
<fieldset class="percent">
9 - dont Count
</fieldset>
<div class="result"></div>

2 个答案:

答案 0 :(得分:2)

根据您当前的代码,您可以使用:

$("fieldset.active")
  .first() // Select the first active class
  .nextUntil(':not(fieldset.percent)') // Select all field after untill you hit a field that doesn't have .percent class
  .addBack() // Add the first element
  .length; // Get the length

当然,根据您的确切代码,还有其他变量。这适用于给定的代码段。

答案 1 :(得分:0)

请注意,自jQuery 1.8以来,tstrsplit已被弃用(您使用的是jQuery 1.9)。请改用andSelf()

考虑到这一点,你可以这样做:

addBack()
var jump = $("fieldset.active:eq(0)").nextUntil(':not(.percent)').addBack().length;

$('.result').html('Counted: '+jump);