2009-09-21 25 views
13

DIVが隠されているか、公開されているかどうかを調べようとしています。JQuery - DIV IDが表示されている場合

これは擬似コードです:

 

if(DIV != VISIBLE) // not visible 
{ 
    show content 
} 

私を支援することができ、任意のjQueryの専門家?

おかげで、 ロバート

答えて

4

以下は、それが非表示の場合DIVはmyDivの名前が表示されます。他のものをしたい場合は、$(this)の中で他の操作を表示して実行するのではなく、each()を使うこともできます。

$('div#myDiv:hidden').show(); 
+0

これはちょっと冗長ですね。 – nickf

+0

@nickf:与えられた例と一貫しているようにしようとしています。 – tvanfosson

1

これは、ID "mydiv" とのいずれかの隠し要素を選択したかどうかをテストします:

if ($("#mydiv:hidden").length > 0) 
{ 
    // 
} 

編集を:簡体セレクタを。それを見ていた:/

39

あなたはにしようとしている場合は、単には、あなたが実際にはまったくチェックを行う必要はありません、隠されているのdivを示しています。

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

かかわらずその状態を事前に確認すると、今すぐ表示されます。

あなたはコンテンツが見えているか否かに応じて、他のアクションを実行したい場合は、その後、あなたがチェックする必要があります:

if ($('#myDiv').is(":hidden")) 
// or 
if ($('#myDiv:hidden').length) 
// or 
if ($('#myDiv:not(:visible)')) { // you get the idea... 
    //perform your actions 
} 
+0

私はこのテストの尊厳を保証することはできませんが、私はちょうど何が起きたかを見るためにこれらの3つの機能をjsperfに投げました。.is:hiddenが最高です! http://jsperf.com/is-the-div-hidden –

26

他のすべての答えは罰金ですが、これは単に翻訳することです実際のJavaScriptコードにあなたの擬似コード:

if (!$('div').is(':visible')) { 
    $('div').show(); 
} 
0

あなただけの隠蔽に見て、あなたにもあなたのためだけに、まさにそれを行いますjQueryの.toggle()メソッドを使用する場合があります要素を見せている場合。同様に、.slideToggle()と.fadeToggle()メソッドは、スライドまたはフェードアニメーションのいずれかで要素を非表示にして表示します。

関連する問題