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

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

你如何测试一个元素是否可见或隐藏?

  1. 这是值得一提的(即使在所有这一次),这$(element).is(":visible")适用于jQuery 1.4.4,但不适用于jQuery 1.3.2,在IE8。这可以使用Tsvetomir Tsonev的有用的测试片段进行测试。只要记住要更改jQuery的版本,以在每个版本下进行测试。

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

// Checks for display:[none|block], ignores visible:[true|false]
$(element).is(":visible"); 
  1. 该解决方案似乎鼓励的confustion visible=false和display:none; 而Mote的解决方案明显地使编码人员有意检查display:none; (通过提及隐藏和显示哪个控制display:none不visible=true)
  2. 这是正确的,但:visible也会检查父元素是否可见,正如chiborg指出的那样。
  3. 你有一点 – 我要清楚的是,代码只检查display属性。鉴于原来的问题是show()和hide(),和他们设置display,我的答案是正确的。顺便说一下,它与IE7的工作,这里是一个测试片段
  4. 我实际上发现反向逻辑单词更好:!(’selector’)。(’:hidden’); 因为某些原因。值得一试。
  5. 这里是一个简单的基准测试是()针对正则表达式:jsperf.com/jquery-is-vs-regexp-for-css-visibility。结论:如果你出于性能考虑,在regexp上使用is()(因为在查看实际元素之前,is()首先查找所有隐藏的节点)。

您可以使用hidden选择器:


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

visible选择器:


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

添加评论

友情链接:蝴蝶教程