2013-03-07 55 views
0

好像不在的DOM被認爲是隱藏的,而不管應用到這些元素的CSS元素可見如何檢查,如果不是在DOM元素是用jQuery

例如,把下面的在Chrome控制檯計算爲false

$('<div style="display: block;">i am a div</div>').is(":visible") 

有沒有什麼辦法來檢查,如果像上面的一個分離元件可見或不可見。我不只是想檢查display css屬性是block

+0

shoudl是 - '$(「

i am a div
」) 。.find( 'DIV')是( 「:可見」)' – 2013-03-07 21:01:00

回答

1

這取決於你正在嘗試做的,但最簡單的事情是將其附加檢查:

var $div = $("<div>"); 
$div.appendTo("body").is(":visible"); 
$div.detach(); 

如果這個檢查是望而卻步適合你,你可以同時檢查displayvisibility CSS檢查它們分別不是nonehidden,並且hidden屬性未設置。你也可以做一些類似設置position: fixed; top: 100%並做上述測試。

編輯:好像jQuery的隱藏檢查:

jQuery.css(elem, "display") === "none" 
|| !jQuery.contains(elem.ownerDocument, elem) 

所以你可以只擺脫二線那裏做一個等效檢查。

0

試試這個:

$('<div style="display: block;">i am a div</div>').css("display")!="none" 
1

Sure you can

var foo = $('<div style="display: block;">i am a div</div>'); 
foo.appendTo('body'); 

var vis = foo.is(":visible"); 

console.log(vis); 

foo.detach(); 

不知道爲什麼你會永遠想嘗試這一點,雖然。

0

如果一個元素沒有連接到一個DOM,然後瀏覽器不把它當作可見,因爲簡單地把它沒有父這可能會影響它的知名度也

相關問題