我想检测页面上的特定HTML元素何时隐藏。这通常是由于父元素(可能很少级别)变得隐藏而发生的。有没有一种简单的方法来检测这一点。或者我是否需要遍历DOM并检查每个父项?
答案 0 :(得分:14)
$(foo).is(":hidden")
可以在当前的jQuery版本中为您解决这个问题。
答案 1 :(得分:8)
您可以检查它是否为:hidden
,例如:
$(".selector:hidden").length > 0
//or
$(".selector").is(":hidden")
如果父项被隐藏,或任何父项或元素直接存在,则此方法有效...只要元素本身没有维度,它就是:hidden
。
答案 2 :(得分:5)
像这样:
<强> HTML 强>:
<div id="test">
<div id="test1">
test
</div>
</div>
<强> CSS 强>:
#test{
display:none;
}
<强> JS 强>:
alert($('#test1').is(":visible"))
答案 3 :(得分:1)
jQuery使用offsetHeight。这适用于大多数浏览器。但你也可以在没有jQuery的情况下检查它。