使用特定的过滤规则来筛选出所需的DOM元素。过滤选择器的语法和css中的伪类的写法一样,都是用:开头。
一. 基本过滤选择器
<script type="text/javascript">
$(function() {
var $first = $("div:first");
console.log($first);
var $last = $("div:last");
console.log($last);
console.log($("div:not(.box)"));
console.log($("div:even"));
console.log($("div:odd"));
console.log($("div:eq(0)"));
console.log($("div:gt(0)"));
console.log($("div:lt(3)"));
console.log($(":header"));
console.log($(":focus"));
})
</script>
二. 内容过滤选择器
| 选择器 |
描述 |
| :contains(text) |
选取含有文本内容为text的元素 |
| :empty |
选取不包含子元素或文本的元素 |
| :has(selector) |
选择与指定的选择匹配的元素 |
| :parent |
选取含有子元素或文本的元素 |
<script type="text/javascript">
$(function() {
console.log($("div:contains(标签)"));
console.log($("div:empty"));
console.log($("div:has(.item2)"))
console.log($(":parent"));
})
</script>
三. 可见性选择过滤器
根据元素的可见状态来选取。
| 选择器 |
描述 |
| :hidden |
选取所有不可见的元素。包括input的type属性是hidden,display是none。 |
| :visible |
选取所有可见的元素。如果一个元素的visibility是hidden也会被选中。 |
<script type="text/javascript">
$(function() {
console.log($("div:visible"));
console.log($("div:hidden"));
})
</script>
四. 子元素过滤选择器
| 选择器 |
描述 |
| :nth-child(index/even/odd/equation) |
匹配其父元素下的第N个子或奇偶元素.这个选择器和之前说的基础过滤(Basic Filters)中的 eq() 有些类似,不同的地方就是前者是从0开始,后者是从1开始. |
| :first-child |
相当于nth-child(1) |
| :last-child |
返回父元素的第一个子元素 |
| :only-child |
如果父类元素仅仅有一个子元素就返回 |
<script type="text/javascript">
$(function() {
// 从p元素的父元素的所有子元素中查找。如果第2个元素是p,则返回这个p元素,如果不是p则不返回这个子元素
console.log($("p:nth-child(2)"));
//从p元素的父元素的所有子元素中查找。如果第一个元素是p则返回这个p元素。否则不返回
console.log($("p:first-child"));
console.log($("p:last-child"));
console.log($("div:only-child"));
});
</script>