jQuery 选择器(更新ing)
| 选择器 | 实例 | 选取 |
|---|---|---|
| 元素选择 | ||
| * | $("*") | 所有元素 |
| #id | $("#lastname") | id="lastname" 的元素 |
| .class | $(".intro") | 所有 class="intro" 的元素 |
| element | $("p") | 所有 <p> 元素 |
| .class.class | $(".intro.demo") | 所有 class="intro" 且 class="demo" 的元素 |
|
selector1,selector2, selector3…… |
$("th,td,.intro") | 所有带有匹配选择的元素 |
| 顺序奇偶选择器 | ||
| :first | $("p:first") | 第一个 <p> 元素 |
| :last | $("p:last") | 最后一个 <p> 元素 |
| :even | $("tr:even") | 所有偶数 <tr> 元素 |
| :odd | $("tr:odd") | 所有奇数 <tr> 元素 |
| 数值大小选择器 | ||
| :eq(index) | $("ul li:eq(3)") | 列表中的第四个元素(index 从 0 开始) |
| :gt(no) | $("ul li:gt(3)") | 列出 index 大于 3 的元素 |
| :lt(no) | $("ul li:lt(3)") | 列出 index 小于 3 的元素 |
| 否定选择器 | ||
| :not(selector) | $("input:not(:empty)") | 所有不为空的 input 元素 |
| 标题元素 | ||
| :header | $(":header") | 所有标题元素 <h1> - <h6> |
| 动画元素选择 | ||
| :animated | 所有动画元素 | |
| 内容选择器 | ||
| :contains(text) | $(":contains('W3School')") | 包含指定字符串的所有元素 |
| :empty | $(":empty") | 无子(元素)节点的所有元素 |
| 可见与隐藏 | ||
| :hidden | $("p:hidden") | 所有隐藏的 <p> 元素 |
| :visible | $("table:visible") | 所有可见的表格 |
| 属性选择器 | ||
| [attribute] | $("[href]") | 所有带有 href 属性的元素 |
| [attribute=value] | $("[href='#']") | 所有 href 属性的值等于 "#" 的元素 |
| [attribute!=value] | $("[href!='#']") | 所有 href 属性的值不等于 "#" 的元素 |
| [attribute$=value] | $("[href$='.jpg']") | 所有 href 属性的值包含以 ".jpg" 结尾的元素 |
| [attribute^=value] | 所有 href 属性的值包含以 ".jpg" 开头的元素 | |
| [attribute*=value] | 所有 href 属性的值包含 "#" 的元素 | |
| [][][][] | 符合所有选择条件的元素 | |
| 表单选择器 | ||
| :input | $(":input") | 所有 <input> 元素 |
| :text | $(":text") | 所有 type="text" 的 <input> 元素 |
| :password | $(":password") | 所有 type="password" 的 <input> 元素 |
| :radio | $(":radio") | 所有 type="radio" 的 <input> 元素 |
| :checkbox | $(":checkbox") | 所有 type="checkbox" 的 <input> 元素 |
| :submit | $(":submit") | 所有 type="submit" 的 <input> 元素 |
| :reset | $(":reset") | 所有 type="reset" 的 <input> 元素 |
| :button | $(":button") | 所有 type="button" 的 <input> 元素 |
| :image | $(":image") | 所有 type="image" 的 <input> 元素 |
| :file | $(":file") | 所有 type="file" 的 <input> 元素 |
| :enabled | $(":enabled") | 所有激活的 input 元素 |
| :disabled | $(":disabled") | 所有禁用的 input 元素 |
| :selected | $(":selected") | 所有被选取的 input 元素 |
| :checked | $(":checked") | 所有被选中的 input 元素 |
| 子元素选择器 | ||
| 层次选择器 | ||
| 后代元素 | $("ancester desendant") | ancester 中所有desendant元素 |
一、选择器中含有特殊符号的注意事项
1.选择器中含有“.”、“#”、“(”或“]”等特殊字符
根据W3C的规定,属性值中是不能含有这些特殊字符的,但在实际项目中偶尔会遇到表达式中含有“#”和“.”等特殊字符,如果按照普通的方式去处理出来的话就会出错。解决此类错误的方法是使用转义符转义。
HTML代码如下:
- <div id="id#b">bb</div>
- <div id="id[1]">cc</div>
如果按照普通的方式来获取,例如:
- $('#id#b');
- $('#id[1]');
以上代码不能正确获取到元素,正确的写法如下:
- $('#id\\#b'); //转义特殊字符“#”
- $('#id\\[1\\]'); //转义特殊字符“[ ]”
2.属性选择器的@问题
1.3.1版本彻底放弃了1.1.0版本遗留下的@符号,如果你使用1.3.1以上的版本,那么你不能在属性前添加@符号,比如:
- $('div[@title="test"'];
正确的写法是去掉@符号,比如:
- $('div[title="test"'];
二、选择器中含有空格的注意事项
选择器中的空格也是不容忽视的,多一个空格或少一个空格也许会得到截然不同的结果。看下面这个例子,它的HTML代码如下:
- <div class="test">
- <div style="display:none;">aa</div>
- <div style="display:none;">bb</div>
- <div style="display:none;">cc</div>
- <div class="test" style="display:none;">dd</div>
- </div>
- <div class="test" style="display:none;">ee</div>
- <div class="test" style="display:none;">ff</div>
使用如下的jQuery选择器分别获取它们。之所以会出现不同的结果,是因为后代选择器与过滤选择器的不同。
- //注意区分类似这样的选择器
- //虽然一个空格,却截然不同的效果.
- var $t_a = $('.test :hidden');
- var $t_b = $('.test:hidden');
- var len_a = $t_a.length;
- var len_b = $t_b.length;
- alert("$('.test :hidden') = "+len_a); //输出 4
- alert("$('.test:hidden') = "+len_b); //输出 3
之所以会出现不同的结果,是因为后代选择器与过滤选择器的不同。
- var $t_a = $('.test :hidden'); //有空格
以上代码是选取class为“test”的元素里面的隐藏元素。而代码:
- var $t_b = $('.test:hidden'); //没有空格
则是选取隐藏的class为“test”的元素。
浙公网安备 33010602011771号