由于问题涉及单个元素,因此该代码可能更合适:
// Checks css for display:[none|block], ignores visibility:[true|false]
$(element).is(":visible");
// The same works with hidden
$(element).is(":hidden");
与twernt 的建议相同,但适用于单个元素; 它与 jQuery FAQ 中推荐的算法相匹配
if ( $(element).css('display') == 'none' || $(element).css("visibility") == "hidden"){
// element is hidden
}
上述方法不考虑父级的可见性。要考虑父级,您应该使用.is(":hidden")
或.is(":visible")
。
例如,
<div id="div1" style="display:none">
<div id="div2" style="display:block">Div2</div>
</div>
上面的方法会考虑
div2
可见而:visible
不:visible
。但是在许多情况下,上述内容可能很有用,尤其是当您需要查找隐藏父级中是否有任何错误 div 时,因为在这种情况下:visible
不起作用。