2012-05-16 24 views
24
<div class='hide'>A</div> 
<div class='hide'>B</div> 
<div class='hide' id='1'>C</div> 

私はすべての要素を非表示にし、id = '1'のものを表示する必要があるshowOneという関数を持っています。1つを除く特定のクラスを持つすべての要素

function showOne(id) { 
// Hide all elements with class = 'hide' 
$('#'+id).show(); 
} 

jqueryでclass = 'hide'の要素をすべて非表示にするにはどうすればよいですか?

+2

ちょっとメモ - 数字で始まるidをHTML5以外につけることはできません – Bongs

答えて

40

のようなものを試してみてください。

+0

+1 - 表示する要素を非表示にして表示する必要がないため、.not()を使用する方が良い解決策です。 「点滅」効果を避けて、より良いUI体験だと思います。 – alieninlondon

+0

'$( '。hide:not(#' + id + ')')。hide();'は本質的に同じです... – Fr0zenFyr

+4

私はちょっとだけ時間をかけて、あなたがあなたのクラスを 'hide'と名付けたからです。hide()関数は、2つの間にリンクがあると人々に考えることができます。私はどこにでもこのパターンの名前を付けています。私がそれを学んでいたとき、私はそのような例を辿るのが苦痛でした。 – Edeph

4
$('div.hide').hide(300,function() { // first hide all `.hide` 
    $('#'+ id +'.hide').show(); // then show the element with id `#1` 
}); 

注:数字のみのIDを使用しないでください。許可されていません。 READ THIS

+1

html5で数字のIDが許可されています - それらをサポートしていない現在のブラウザを認識していますか? – nnnnnn

0

私はソリューションがどれほど簡単か、質問を書いた直後に見つけたのは恥ずかしいです。ジャスト:

$('.hide').hide(); 
+0

入門jQueryチュートリアル(jQueryのウェブサイトにあるものの1つなど)を読むと、より一般的なセレクタ(ID、クラス、タグ名、親/子関係による選択など)に関するすべてを知ることができます。 CSSセレクターの構文と本質的に同じです。それを理解したら、選択された要素をどのメソッドで呼び出すか(例えば '.hide()')を決めるのが簡単な部分です。 – nnnnnn

+0

id = "1"の要素を隠さないのはどうでしょうか?あなた自身の答えはあなた自身の質問に完全に答えるものではありません! – Griknok

0

あなたはを使用して非表示としてクラスを持つすべてのコンポーネントを非表示にすることができます。 $( '。hide')。hide();

function showOne(id) { 
    $('.hide').not('#' + id).hide(); 
} 

showOne(1);​ 

デモ:http://jsfiddle.net/aymansafadi/kReZn/私も@TheSystemRestartに同意

、 "注:数字のみのIDを使用しない"

0

試してみてください。

function showOne(id) { 
    $('.hide').hide(); 
    $('#'+id).show(); 
} 
3

次はCSSクラス名で要素にアクセスする必要があります。これを行うにはを使用してください。オペレータ

$('.hide').hide(); 

すべてのdivを非表示にします。

idで1つのdivを表示します。

$('#elemID').show(); 

それとも、またそれはクラス非表示を有する第一のdivが表示されます

$('.hide').eq(0).show(); 

を使用してこれを行うことができます。

関連する問題