2010-11-29 4 views
3

私は、1つの要素だけを表示できるアコーディオンスタイルのビヘイビアを実装しています。私は、要素eを表示してすべてを隠す、show(e)関数を実装するのは簡単だと思っていましたが、BUT eがすべて隠されていました。どの要素が表示されているかを把握する手間を省くことができます。私はアコーディオンの各要素にコールバックとしてshow(e)を添付することができます。そうするにはjquery特定の要素をフィルターにかける

、私は唯一の方法は、それがeと等しくない場合、それを隠して、すべての要素を反復処理広告eにそれぞれ1を比較する.each()を使用することです考えていました。

しかし、私はjQuery .filter関数(http://api.jquery.com/filter/)があることを思い出していますが、それは要素と一致しているに過ぎず、反対ではありません。 (すなわち、私は関数を呼び出すし、合格した場合、それが唯一のeしかしeはなく、すべてを一致しますe。)

はそうする方法はあります、または一般にアコーディオンを作成するための推奨事項はありますか?前もって感謝します!

答えて

3

次に、.not()機能の使用を検討する必要があります。

var excludeTheseDOMElements = $('#something'); 
$('match_something').not(excludeTheseDOMElements).each(function(){ 
    //do stuff here 
}); 

UPDATE:

また:not()擬似セレクタを使用することができます -

$('match_something:not(#something)').each(function(){ 
    //do stuff here 
}); 
+0

...これは素晴らしいです。本当にありがとう。 (「3分で回答を受け入れることができます」) – munchybunch

関連する問題