2017-05-03 13 views
0

したがって、次のコードではsiblingsがカウントされますが、要件を満たさないsiblingに停止します。jQuery - 特定の要素に到達してカウントを停止するまで要素をカウントする

たとえば、カウントで6を得るのではなく、アクティブから最初に数えるように4を返します。fieldsetにはpercent classが含まれません。以下のような

何か:$("fieldset.active").andSelf().siblings('fieldset.percent').stop().not('.percent').length;

ベローは、コードの作業開始点です。

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

ベースは、あなたがこれを使用することができます:

$("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 

もちろん、あなたの正確なコードに応じて、追加の変数があります。これは所定のスニペットで動作します。

0

andSelf()は、jQuery 1.8以降で廃止されました(jQuery 1.9を使用しています)。代わりにaddBack()を使用してください。考えることで

、あなたが行うことができます:

var jump = $("fieldset.active:eq(0)").nextUntil(':not(.percent)').addBack().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>

関連する問題