3

如果我有以下 HTML:

<div style="display:none;">
    <span id="hello">Hey</span>
</div>

我这样做alert($("#hello").css("display"));了,它会说“内联”。span 显然是不可见的,但由于它上面没有直接的display:none;属性,所以它仍然说它是可见的。

如何测试某个 DOM 元素是否实际可见,即使其父级或其父级的父级未显示?

4

4 回答 4

4

您可以使用:

if ($('#myitem').is(':visible')){

/*Do some sort of stuff in here */

}

仍在动画的项目(如使用.hideor .fadeOut)将是“可见的”,直到动画完成

于 2012-06-29T18:49:26.270 回答
2

您可以使用:visible选择器和is方法:

if($("#hello").is(":visible")) {
    //It's visible!
}

is方法返回一个布尔值,指示是否有任何匹配的元素与该选择器匹配。

于 2012-06-29T18:46:59.520 回答
1

利用$(selector).is(':visible')

于 2012-06-29T18:48:18.893 回答
0

.is() 函数:hidden:visible伪选择器一起使用:

http://jsfiddle.net/jbabey/ucSVx/

$('#hello').is(':hidden')
于 2012-06-29T18:48:48.083 回答