2011-08-01 8 views
4

は私が非表示(最初のものを除く)のすべてのdivの持つ同じクラス

<div class="c1"></div> 
<div class="c1"></div> 
<div class="c1"></div> 
<div class="c1"></div> 
<div class="c1"></div> 
<div class="c1"></div> 
<div class="c1"></div> 
<div class="c1"></div> 
<div class="c1"></div> 
<div class="c1"></div> 

は、今、私が最初に出たまますべての<のdiv >を非表示にする必要があり、同じクラスで10 <DIV>年代を持っています。

答えて

16

これはそれを行うための最速の方法は次のとおりです。$('div.c1').not(':eq(0)').hide(); :)

+0

@Brockアダムスの作品を願って、まあjQueryのドキュメントは、それが遅くだと言うが、あなた:GTは、あなたの速度の試験によれば速く**私はずっと**である別の方法を考えさせられました。私はそれを新しい方法で加えました。私は投稿を編集します – Paulpro

+0

http://jsperf.com/select-all-but-first/2 – Paulpro

+0

@Brock Adams、実際にFF5でテストすると、jQueryのドキュメントも同じようになります。たぶん、あなたがテストしている間に、少しだけバックグラウンド・タスクをCPUに与えていたかもしれません。 – Paulpro

1
$('.c1').hide(); 
$('.c1:first').show(); 
0

別の方法:

$('div.c1:gt(0)').hide(); 

あなたは、たとえば、第一2を維持することを決定した場合には、より柔軟です。

これは他の回答よりも10%早いことに注意してください(それ以前のFF 5)。 See this performance test

0
var elements = document.getElementsByTagName("div").getElementsByClassName("c1"); 
for (var i = 1; i < elements.length; i++) 
{ 
    elements[i].style.visibility = "hidden"; 
} 

私はそれが

関連する問題