协慌网

登录 贡献 社区

如何检查 jQuery 中是否隐藏了一个元素?

是可能的切换元件的可见性,使用函数.hide() .show().toggle()

如何测试元素是可见还是隐藏?

答案

由于问题涉及单个元素,因此该代码可能更合适:

// Checks css for display:[none|block], ignores visibility:[true|false]
$(element).is(":visible"); 

// The same works with hidden
$(element).is(":hidden");

twernt 的建议相同,但适用于单个元素; 它与 jQuery FAQ 中推荐的算法相匹配

您可以使用hidden选择器:

// Matches all elements that are hidden
$('element:hidden')

visible选择器:

// Matches all elements that are visible
$('element:visible')
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不起作用。