2011-10-16 13 views
8

私は一瞬、私は最初の3かどんな数を表示する方法jQueryの最初のn個の要素を表示する方法は?

<div class="fields" style="display:none;"> 
    ... 
</div> 
<div class="fields" style="display:none;"> 
    ... 
</div> 
<div class="fields" style="display:none;"> 
    ... 
</div> 
<div class="fields" style="display:none;"> 
    ... 
</div> 
... 

ですべて表示noneです同じクラス「フィールド」と50個の要素を持っているページがあります。下の例のように上の数をプラスして数えます。

だから例えば、私はこれは私が

<div class="fields"> 
    <h1>Station 1</h1> 
</div> 
<div class="fields"> 
    <h1>Station 2</h1> 

</div> 
<div class="fields"> 
    <h1>Station 3</h1> 
</div> 
<div class="fields" style="display:none;"> 
    ... 
</div> 
... 

私は必要なのdivのだから、基本的には唯一のいくつかの数のように見えるようにdivを必要とするものである最初の3を必要に応じて...私はすでに数を持っていますこのblurステートメントでstation_count変数に表示する必要がある要素。また、私は行う方法についてcount..anyのアイデアをspanタグを必要と気づくこの

$("#number_station").blur(function(){ 
     var station_count = $(this).val(); 
        //code goes there 
    }); 

答えて

16

私は最初の3かどんな番号を表示する方法。

$('div.fields:lt(3)').show(); 

プラストップ

$('div.fields:lt(3)').each(function (index) 
{ 
    $('<h1></h1>', {text: 'Station ' + index}).prependTo(this); 
}).show(); 

デモの数とそれらを数える:基本的な質問のためのjQueryのAPIドキュメントを読むhttp://jsfiddle.net/mattball/TssUB/


このように:(新しい要素を作成するための)

+1

+1、あなたはのでjsfiddle例 –

+0

+1に私を打つ:LTは()、jQueryの延長ではなく、CSSの仕様の一部であるクエリが使用した:LT()を取ることができませんネイティブのDOM querySelectorAll()メソッドによって提供されるパフォーマンス向上の利点現代のブラウザーでのパフォーマンスを向上させるには、代わりに$( "your-pure-css-selector")。slice(0、index)を使用してください。 – Neil

+0

のために同じ答え:) – Neil

1

$(".fields").each(function() { 
     //do whatever like count then show/hide 

    }); 

を使用すると、隠されたdivを反復処理することができます。したがって、単純な変数を使用すると、必要なときにいつでも開始/停止することができます。

8

他の回答はうまくいくが、最近jQuery slice()メソッドが見つかりました。

$(".fields").slice(0, 3).each(function(index) { 
    // Do whatever you want to the first three elements 
} 
+2

'.slice(0、4)'は、そのarugmentsが0でインデックス付けされているので、3つではなく最初の4つの要素を与えます。 –

+1

jqueryがすべてスマートな場合、 ':lt(3)'セレクタは 'slice()'よりも効率的です。しかし、 'slice()'はミドルセットで作業する方がより柔軟です。 – jbrookover

+0

@MattBall Whoops :) – jbrookover

関連する問題