【问题标题】:In jQuery, how can I select a hidden element?在 jQuery 中,如何选择隐藏元素?
【发布时间】:2010-10-15 08:43:14
【问题描述】:

如何在下面的代码中选择display 设置为none 的<span>?

<p id="p1">
<span id="test1" style="display:none">test1</span> 
<span id="test2" >test2</span> 
</p>

我可以使用$("span[id='test1']")选择ID为“test1”的&lt;span&gt;,但是当我使用$("span[style='display:none']")时它不起作用。

有什么方法可以一次获取这个元素吗?

非常感谢。

【问题讨论】:

标签: jquery css css-selectors


【解决方案1】:

您正在寻找:hidden 选择器

请注意,按 ID 选择元素的正确方法很简单:

$("#test1");

按照您的方式进行操作会使 jQuery 进行不必要的解析,并且速度要慢得多。

如果您只想在隐藏的情况下选择#test1,请执行以下操作:

$("#test1:hidden");

如果您想选择隐藏在#p1 下的所有&lt;span&gt; 元素,请执行以下操作:

$("span:hidden", "#p1");

如 cmets 中所述,与此选择器相反的是 :visible 选择器:

$("span:visible", "#p1");

然后会选择元素#p1 中的任何可见&lt;span&gt; 元素。

【讨论】:

  • 请注意,寻找可见元素也存在相反的情况 - :visible
  • 很公平。添加到答案。 :)
  • 这显然已经改变了。文档现在声明:“如果元素或其父元素在文档中不占用空间,则假定元素为隐藏。不考虑 CSS 可见性。”
  • $(#test1).is(:hidden) 将返回 true。因此,您可以将.is(:hidden) 添加到您的答案中。这是一个更清洁的解决方案。查看更多api.jquery.com/hidden-selector
  • @PaoloBergantino 为什么:visible 选择器没有过滤col 元素。有没有其他方法
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-30
  • 1970-01-01
相关资源
最近更新 更多