# :visible Selector

所属分类：选择器 > jQuery 扩展 | 选择器 > 可见性过滤 英文文档：:visible Selector

## visible selector

描述: 选择所有可见的元素。

- #### 添加的版本: 1.0jQuery( ":visible" )

如果元素中占据文档中一定的空间,元素被认为是可见的。可见元素的宽度或高度，是大于零。

元素的`visibility: hidden` 或 `opacity: 0`被认为是可见的，因为他们仍然占用空间布局。

不在文档中的元素是被认为隐藏的;jQuery没有办法知道他们是否是可见的，因为元素可见性依赖于适用的样式。

隐藏元素上做动画，元素被认为是可见的，直到动画结束。显示元素上做动画，在动画的开始处该元素被认为是可见的。

`:visible`的计算方法是在jQuery 1.3.2改变。 发行说明中列出更详细的变化。

### Additional Notes（其他注意事项）:

- 因为`:visible` 是一个 jQuery 延伸出来的选择器，并不是的CSS规范的一部分，使用`:visible` 查询不能充分利用原生DOM提供的`querySelectorAll()` 方法来提高性能。为了当使用`:visible` 的时候在现代浏览器上获得更佳的性能，首先使用纯CSS选择器选择元素，然后使用`.filter(":visible")`代替.

## 例子:

#### 在所有可见的 div 上添加事件，当点击后变成黄色。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
    <!DOCTYPE html><html><head>  <style>  div { width:50px; height:40px; margin:5px; border:3px outset green; float:left; }  .starthidden { display:none; }  </style>  <script src="https://code.jquery.com/jquery-latest.js"></script></head><body>  <button>Show hidden to see they don't change</button>  <div></div>  <div class="starthidden"></div>  <div></div>   <div></div>  <div style="display:none;"></div><script>    $("div:visible").click(function () {      $(this).css("background", "yellow");    });    $("button").click(function () {      $("div:hidden").show("fast");    }); </script> </body></html>

#### Demo: