如果我有下面的 HTML:
<div style="display:none;">
<span id="hello">Hey</span>
</div>
我确实alert($("#hello").css("display"));
,它会说"内联"。跨度显然是不可见的,但由于它没有直接具有display:none;
属性,因此它仍然表示它是可见的。
如何测试某个 DOM 元素是否实际可见,即使其父元素或其父元素的父元素未显示?
您可以使用:
if ($('#myitem').is(':visible')){
/*Do some sort of stuff in here */
}
仍在动画中的项目(如使用 .hide
或 .fadeOut
)将"可见",直到动画完成
:visible
选择器和is
方法:
if($("#hello").is(":visible")) {
//It's visible!
}
is
方法返回一个布尔值,指示是否有任何匹配的元素与该选择器匹配。
使用$(selector).is(':visible')
使用 .is() 函数以及 :hidden 或 :visible 伪选择器:
http://jsfiddle.net/jbabey/ucSVx/
$('#hello').is(':hidden')