好像不在的DOM被認爲是隱藏的,而不管應用到這些元素的CSS元素可見如何檢查,如果不是在DOM元素是用jQuery
例如,把下面的在Chrome控制檯計算爲false
:
$('<div style="display: block;">i am a div</div>').is(":visible")
有沒有什麼辦法來檢查,如果像上面的一個分離元件可見或不可見。我不只是想檢查display
css屬性是block
。
好像不在的DOM被認爲是隱藏的,而不管應用到這些元素的CSS元素可見如何檢查,如果不是在DOM元素是用jQuery
例如,把下面的在Chrome控制檯計算爲false
:
$('<div style="display: block;">i am a div</div>').is(":visible")
有沒有什麼辦法來檢查,如果像上面的一個分離元件可見或不可見。我不只是想檢查display
css屬性是block
。
這取決於你正在嘗試做的,但最簡單的事情是將其附加檢查:
var $div = $("<div>");
$div.appendTo("body").is(":visible");
$div.detach();
如果這個檢查是望而卻步適合你,你可以同時檢查display
和visibility
CSS檢查它們分別不是none
和hidden
,並且hidden
屬性未設置。你也可以做一些類似設置position: fixed; top: 100%
並做上述測試。
編輯:好像jQuery的隱藏檢查:
jQuery.css(elem, "display") === "none"
|| !jQuery.contains(elem.ownerDocument, elem)
所以你可以只擺脫二線那裏做一個等效檢查。
試試這個:
$('<div style="display: block;">i am a div</div>').css("display")!="none"
var foo = $('<div style="display: block;">i am a div</div>');
foo.appendTo('body');
var vis = foo.is(":visible");
console.log(vis);
foo.detach();
不知道爲什麼你會永遠想嘗試這一點,雖然。
如果一個元素沒有連接到一個DOM,然後瀏覽器不把它當作可見,因爲簡單地把它沒有父這可能會影響它的知名度也
shoudl是 - '$(「