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

时间:2012-06-29 18:46:04

标签: javascript jquery html

如果我有以下HTML:

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

我做alert($("#hello").css("display"));,它会说“内联”。跨度显然不可见,但由于它没有直接具有display:none;属性,它仍然表示它是可见的。

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

4 个答案:

答案 0 :(得分:4)

您可以使用:

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

/*Do some sort of stuff in here */

}

在动画完成之前,动画的项目(例如使用.hide.fadeOut)将“可见”

答案 1 :(得分:2)

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

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

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

答案 2 :(得分:1)

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

答案 3 :(得分:0)

使用.is() function以及:hidden:visible psuedoselectors:

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

$('#hello').is(':hidden')