jQuery_3_过滤选择器
过滤选择器(过滤器)类似于CSS3里的伪类,包含
1. 基本过滤器
2. 内容过滤器
3. 可见性过滤器
4. 子元素过滤器
5. 其他方法
一. 基本过滤器
| 过滤器名 | jQuery语法 | 注释 |
| :first | $("li:first") | 选取第一个li元素 |
| :last | $("li:last") | 选取最后一个li元素 |
| :not(selector) | $("li:not(.red)") | 选取class不是red的li元素 |
| :even | $("li:even") | 选取索引(0开始)是偶数的所有元素 |
| :odd | $("li:odd") | 选取索引(0开始)是奇数的所有元素 |
| :eq(index) |
$("li.eq(2)") 正数第三个 $$("li.eq(-2)") 倒数第二个 |
选择索引(0开始)等于index的元素 |
| :gt(index) | $("li:gt(2)") | 选择索引(0开始)大于index的元素 |
| :lt(index) | $("li:lt(2)") | 选择索引(0开始)小于index的元素 |
| :header | $(":header") | 选择标题元素h1~h6 |
| :focus | $("input:focus") |
选择当前被焦点元素 focus过滤器,必须是网页初始状态的已经被激活焦点的元素才能实现元素获取。而不是鼠标点击或Tab键敲击激活的 |
四个方法
| first() | 等同于 :first |
| last() | 等同于:last |
| eq(index) | 等同于:eq(index) |
| not(selector) | 等同于:not(selector) |
<ul id="d1"> <li>列表1</li> <li>列表2</li> <li class="red">列表3</li> <li>列表4</li> <li>列表5</li> <li>列表6</li> </ul> <ul> <li>列表1</li> <li>列表2</li> <li>列表3</li> <li>列表4</li> <li>列表5</li> <li>列表6</li> </ul> <div> <h3>我是标题</h3> </div> <input type="text"/> <input type="text" /> <div style="display:none">aduabcppoip</div> <div>jhkjkhjkhjkhjk</div> <div></div> <div></div>
$("li:first").css("background", "grey");
$("li:last").css("background", "grey");
$("#d1 li:last").css("background", "grey");
$("ul:first li:last").css("background", "grey");
$("li:not(.red)").css("background", "grey");
$("li:even").css("background", "grey");
$("li:odd").css("background", "grey");
$("li:eq(2)").css("background", "grey");
$("li:eq(-2)").css("background", "grey");
$("li:gt(2)").css("background", "grey");
$("li:lt(3)").css("background", "grey");
$("li:lt(-3)").css("background", "grey");
$(":header").css("background", "grey");
$("div :header").css("background", "grey");
$("input").get(1).focus();//先让文本框选中
$("input:last:focus").css("background", "red");
$("li").first().css("background", "grey");
$("li").last().css("background", "grey");
$("li").not(".red").css("background", "grey");
$("li").eq(2).css("background", "grey");
二. 内容过滤器
内容过滤器的过滤规则主要是包含了子元素或文本内容
| 过滤器名 | JQuery语法 | 注释 |
| :contains(text) | $(":contains('abc')") | 选取含有“abc”文本的元素 |
| :empty | $("div:empty") | 选取不包含子元素或空文本的div元素 |
| :has(selector) | $(":has(.red)") | 选择子元素含有class是res的元素 |
| :parent | $(":parent") | 选取含有子元素或文本的元素 |
四个方法
| has(selector) | 等同于:has(selector) |
| parent() | 选择当前元素的父元素 |
| parents() | 选择当前元素的父元素和祖先元素 |
| parentsUntil() | 选择当前元素的遇到某个元素停止 |
注意:这里的parent方法和:parant过滤器是不同的
$("div:contains('abc')").css("background", "grey");
$("div:empty").css("height", "20px").css("background", "grey");
$("ul:has(.red)").css("background", "grey");
$("div:parent").css("background", "grey");
$("ul").has(".red").css("background", "grey");
$("li").parent().css("background", "grey");
$("li").parent().eq(0).css("background", "grey");
$("li").parents().css("background", "grey");
$("li").parentsUntil("body").css("background", "grey");
三. 可见性过滤器
可见性过滤器根据元素的可见性和不可见性来选择相应元素
| :hidden | $(":hidden") | 选取不可见元素 |
| :visible | $(":visible") | 选取可见元素 |
:hidden过滤器一般是包含的内容为:css样式为dispaly:none, input表单类型为type="hidden"和 visiblity:hidden的元素。
$("div:hidden").css("background", "grey").show(1000);
$("div:visible").css("background", "grey")

浙公网安备 33010602011771号