好像不在的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是 - '$(“