2011-12-13 62 views
34

這是我的div檢查DIV是使用隱藏的jQuery

<div id="car2" style="display:none;"></div> 

然後,我有一個顯示按鈕,將顯示在div當你點擊:

$("show").click(function() { 
    $("$car2").show(); 
}); 

所以現在我想檢查在div #car2仍然隱藏表單提交前:

if($('#car2').is(':hidden')) { 
    alert('car 2 is hidden'); 
} 

現在這裏是問題。雖然div #car2已經顯示,但我仍然收到警告消息,這意味着jQuery假定div #car2仍處於隱藏狀態。

我的jQuery版本是1.7。

謝謝。

編輯:

碧玉說,我的代碼是正確的,並且可以通過這個demo運行。

我懷疑與我的表單有衝突jquery form to wizard plugin。任何人有任何想法來解決這個問題?

+1

http://jsfiddle.net/YjP4K/2/您的代碼不工作簡化,也許當你有一個錯誤在其他地方? – Jasper

+0

另請參見[檢查一個元素是否隱藏\ [由jquery \]](https://stackoverflow.com/questions/178325/checking-if-an-element-is-hidden) –

回答

61

您可以檢查CSS display屬性:

if ($('#car').css('display') == 'none') { 
    alert('Car 2 is hidden'); 
} 

這裏是一個演示:http://jsfiddle.net/YjP4K/

+0

雖然其他答案是正確的,但不知何故,我只能在我的表單中使用這種方法,所以我會選擇這個作爲答案。謝謝。 – cyberfly

+1

'$('#car')。is(:hidden)'should be working。這也是比現在更清潔的解決方案。通過https://api.jquery.com/hidden-selector/ – akshay

+1

查看更多@akshay是的,它使語義更有意義。我認爲有些邊緣情況下你自己的檢查是有意義的,因爲圍繞着使用':hidden'和':visible'選擇器的元素是有條件的。 – Jasper

4

嘗試檢查爲:可見屬性。

if($('#car2').not(':visible')) 
{ 
    alert('car 2 is hidden');  
} 
28

嘗試:

if(!$('#car2').is(':visible')) 
{ 
    alert('car 2 is hidden');  
} 
+1

應該被標記爲答案 – Thamaraiselvam

2

你是否注意到你的錯字,$car2代替#car2

無論如何,:hidden似乎按預期工作,嘗試它here

8

嘗試

if($('#car2').is(':hidden')) 
{ 
    alert('car 2 is hidden');  
} 
1

可以使用,

if (!$("#car-2").is(':visible')) 
{ 
     alert('car 2 is hidden'); 
}