:hidden 选择器| jqueryAPI 2.2 中文手册- AspRain.cn 致力于Web开发技术翻译整理

jQuery API 2.2.0

:hidden 选择器

分类:选择器 > jQuery扩展选择器 | 选择器 > 可见性筛选选择器

hidden selector

描述:选择所有隐藏的元素。

加入于: 1.0
jQuery( ":hidden" )

元素可能因为几种原因而被视为隐藏:

  • 它们具有CSS属性display: none
  • 它们是表单元素,且type="hidden"
  • 它们的宽度和高度被显式地设置为0。
  • 一个祖先元素被隐藏了,所以元素也不显示在网页上。

visibility: hidden或者opacity: 0的元素会被视为可见,因为它们依然在布局上占位置。在隐藏一个元素的动画过程中,元素会被视为可见,直到结束动画。

不在document上的元素不会被视为可见;jQuery无法知道这个元素在被追加到document上后是否可见,因为这取决于所适用的样式。

该选择器是:visible选择器的对立面。因此,每个被:hidden选中的元素都不能被:visibile选择器选中,反之亦然。

在显现元素的动画过程中,在动画的起点元素被视为可见的。

在jQuery 1.3.2中,:hidden的定义有所改变。一个元素如果它或它的父元素不在文档中占位置,它被假定为隐藏。CSS的属性visibility不记入内(因此$( elem ).css( "visibility", "hidden" ).is( ":hidden" ) == false)。jQuery 1.3.2发布公告详细地讲解了这个改变。

其它说明

  • 因为:hidden是一个jQuery扩展,并不是CSS规范文档的一部分,使用:hidden查询,不能充分利用原生DOM的querySelectorAll()方法来提高性能。要想在使用:hidden选择元素时获得最佳性能,请先使用一个纯CSS选择器选择元素,然后使用.filter(":hidden")作筛选。
  • 过度使用这个选择器可能带来性能影响,因为它会强迫浏览器在它可以确定可见性之前重新呈现网页。用别的方法跟踪元素的可见性,比如说使用样式类,可以提供更好的性能。

示例

显示所有的隐藏的div,并记数所有的type="hidden"的<input>。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>hidden demo</title>
  <style>
  div {
    width: 70px;
    height: 40px;
    background: #e7f;
    margin: 5px;
    float: left;
  }
  span {
    display: block;
    clear: left;
    color: red;
  }
  .starthidden {
    display: none;
  }
  </style>
  <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
 
<span></span>
<div></div>
<div style="display:none;">Hider!</div>
<div></div>
 
<div class="starthidden">Hider!</div>
<div></div>
 
<form>
  <input type="hidden">
  <input type="hidden">
  <input type="hidden">
</form>
 
<span></span>
 
<script>
// 在一些浏览器中,:hidden包括<head>、<title>、<script>,等等
var hiddenElements = $( "body" ).find( ":hidden" ).not( "script" );
 
$( "span:first" ).text( "Found " + hiddenElements.length + " hidden elements total." );
$( "div:hidden" ).show( 3000 );
$( "span:last" ).text( "Found " + $( "input:hidden" ).length + " hidden inputs." );
</script>
 
</body>
</html>

演示结果

如果网页上不能运行示例,请点击http://www.asprain.cn/jQueryAPI/hidden-selector.htm查看示例。

如果你觉得本文档对你有用,欢迎给翻译作者支付宝打赏,支持翻译作者源源不断翻译更多有用的技术文档。