使用 jQuery 检查 DOM 元素的继承可见性

Checking inherited visibility of DOM element with jQuery

本文关键字:继承 可见性 元素 DOM jQuery 检查 使用      更新时间:2023-09-26

如果我有下面的 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')