2009-09-21 41 views
13

我想找出一個DIV是隱藏的或者它是否被暴露。JQuery - 如果DIV ID是可見的

這是僞代碼:

 

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

任何JQuery的專家能幫助我嗎?

感謝, 羅伯特

回答

4

下面會顯示一個DIV命名myDiv如果它是隱藏的。請注意,如果您想執行其他操作,您也可以使用each()而不是在每個內部的$(this)上顯示和執行其他操作。

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

這有點多餘,不是嗎? – nickf 2009-09-21 21:54:55

+0

@nickf:試圖與給定的例子保持一致。 – tvanfosson 2009-09-21 21:57:20

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

我不能保證這個測試的神聖性,但我只是把這三個函數扔進jsperf來看看發生了什麼..好像.is:hidden是最好的! http://jsperf.com/is-the-div-hidden – 2014-05-01 15:56:23

26

其他所有的答案都很好,但是這僅僅是翻譯僞代碼轉換爲實際的Javascript代碼:

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

如果你只希望隱藏和顯示你可能也只是使用jQuery .toggle()方法,將做到這一點對你的元素。同樣,.slideToggle()和.fadeToggle()方法將隱藏並顯示具有幻燈片或淡入淡出動畫的元素。