如何检查元素在 jQuery 中是否隐藏?
2008-10-07
3208492
如何使用
.hide()
、
.show()
或
.toggle()
切换元素的可见性?
如何测试元素是否为
visible
或
hidden
?
3个回答
由于问题涉及单个元素,因此此代码可能更合适:
// Checks CSS content for display:[none|block], ignores visibility:[true|false]
$(element).is(":visible");
// The same works with hidden
$(element).is(":hidden");
它与 twernt 的建议 相同,但应用于单个元素;并且它 与 jQuery FAQ 中推荐的算法相匹配 。
我们使用 jQuery 的 is() 来检查所选元素是否与另一个元素、选择器或任何 jQuery 对象匹配。此方法遍历 DOM 元素以查找满足传递参数的匹配项。如果匹配,它将返回 true,否则返回 false。
Tsvetomir Tsonev
2008-10-07
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>
The above method will consider
div2
visible while:visible
not. But the above might be useful in many cases, especially when you need to find if there is any error divs visible in the hidden parent because in such conditions:visible
will not work.
Mote
2008-10-07