1. 基本选择器
基本选择器是jQuery中最常用的选择器,也是最简单的选择器,它通过元素id、class和标签名等来查找DOM元素。如下表:
选择器 | 描述 | 返回 | 示例 |
#id | 根据给定的id匹配一个元素。 | 单个元素 | $("#myID") |
.class | 根据给定的类名匹配元素。 | 集合元素 | $(".myClass") |
element | 根据给定的元素名匹配元素。 | 集合元素 | $("div") |
* | 匹配所有元素。 | 集合元素 | $("*") |
selector1,...,selectorN | 将每一个选择器匹配到的元素合并。 | 集合元素 | $("div,#myID,p.myClass") |
2. 层次选择器
如果想通过DOM元素之间的层次关系来获取特定元素,例如后代元素、子元素、相邻元素和兄弟元素等,可以使用层次选择器。如下表:
选择器 | 描述 | 返回 | 示例 |
$("ancestor descendant") | 选取ancestor元素里的所有descendant后代元素。 | 集合元素 | $("div span") |
$("parent > child") | 选取parent元素下的child子元素。 | 集合元素 | $("div > span") |
$("prev + next") | 选取紧接在prev元素后的next元素。 | 集合元素 | $(".myClass + div") |
$("prev ~ siblings") | 选取prev元素之后的所有siblings元素。 | 集合元素 | $(".myClass ~ div") |
3. 过滤选择器
过滤选择器主要是通过特定的过滤规则来筛选出所需的DOM元素,都以一个冒号":"开头。按照不同的过滤规则,可以分为基本过滤、内容过滤、可见性过滤、子元素过滤和表单对象属性过滤。
基本过滤选择器如下表:
选择器 | 描述 | 返回 | 示例 |
:first | 选取第一个元素。 | 单个元素 | $("div:first") |
:last | 选取最后一个元素。 | 单个元素 | $("div:last") |
:not(selector) | 去除所有与给定选择器匹配的元素。 | 集合元素 | $("input:not(.myClass)") |
:even | 选取索引是偶数的所有元素。 | 集合元素 | $("input:even") |
:odd | 选取索引是奇数的所有元素。 | 集合元素 | $("input:odd") |
:eq(index) | 选取索引等于index的元素。 | 单个元素 | $("input:eq(1)") |
:gt(index) | 选取索引大于index的元素。 | 集合元素 | $("input:gt(1)") |
:lt(index) | 选取索引小于index的元素。 | 集合元素 | $("input:lt(1)") |
:header | 选取所有的标题元素。 | 集合元素 | $(":header") |
:animated | 选取当前正在执行动画的所有元素。 | 集合元素 | $("div:animated") |
内容过滤选择器的过滤规则体现在它所包含的子元素或文本内容上,如下表:
选择器 | 描述 | 返回 | 示例 |
:contains(text) | 选取含有文本内容为"text"的元素。 | 集合元素 | $("div:contains('me')") |
:empty | 选取不包含子元素或者文本的空元素。 | 集合元素 | $("div:empty") |
:has(selector) | 选取含有选择器所匹配的元素的元素。 | 集合元素 | $("div:has(p)") |
:parent | 选取含有子元素或者文本的元素。 | 集合元素 | $("div:parent") |
可见性过滤选择器是根据元素的可见和不可见状态来选择相应的元素,如下表:
选择器 | 描述 | 返回 | 示例 |
:hidden | 选取所有不可见的元素。 | 集合元素 | $("div:hidden") |
:visible | 选取所有可见的元素。 | 集合元素 | $("div:visible") |
属性过滤选择器的过滤规则是通过元素的属性来获取相应的元素,如下表:
选择器 | 描述 | 返回 | 示例 |
[attribute] | 选取拥有此属性的元素。 | 集合元素 | $("div[id]") |
[attribute=value] | 选取属性的值为value的元素。 | 集合元素 | $("div[id=myID]") |
[attribute!=value] | 选取属性的值不等于value的元素。 | 集合元素 | $("div[class!=myClass]") |
[attribute^=value] | 选取属性的值以value开始的元素。 | 集合元素 | $("div[title]^=test") |
[attribute$=value] | 选取属性的值以value结束的元素。 | 集合元素 | $("div[title]$=test") |
[attribute*=value] | 选取属性的值含有value的元素。 | 集合元素 | $("div[title]*=test") |
[selector1][selectorN] | 用属性选择器合并成一个复合属性选择器。 | 集合元素 | $("div[id][title$=test]") |
子元素过滤选择器相对复杂,如下表:
选择器 | 描述 | 返回 | 示例 |
:nth-child | 选取每个父元素下的第index个子元素或奇偶元素。 | 集合元素 | $(ul:nth-child(1)) |
:first-child | 选取每个父元素的第一个子元素。 | 集合元素 | $(ul li:first-child) |
:last-child | 选取每个父元素的最后一个子元素。 | 集合元素 | $(ul li:first-child) |
:only-child | 选取每个父元素唯一的一个子元素。 | 集合元素 | $(ul li:only-child) |
表单对象属性选择器主要是对所选择的表单元素进行过滤,如下表:
选择器 | 描述 | 返回 | 示例 |
:enabled | 选取所有可用元素。 | 集合元素 | $("#myform :enabled") |
:disabled | 选取所有不可用元素。 | 集合元素 | $("#myform :disabled") |
:checked | 选取所有被选中的元。素 | 集合元素 | $("input:checked") |
:selected | 选择所有被选中的选项元素。 | 集合元素 | $("select :selected") |
4. 表单选择器
表单选择器能够极其方便地获取到表单的某个或某类型的元素,如下表:
选择器 | 描述 | 返回 | 示例 |
:input | 选取所有的<input>、<textarea>、<select>和<button>元素。 | 集合元素 | $(":input") |
:text | 选取所有的单行文本框。 | 集合元素 | $(":text") |
:password | 选取所有的密码框。 | 集合元素 | $(":password") |
:radio | 选取所有的单选框。 | 集合元素 | $(":radio") |
:checkbox | 选取所有的多选框。 | 集合元素 | $(":checkbox") |
:submit | 选取所有的提交按钮。 | 集合元素 | $(":submit") |
:image | 选取所有的图像按钮。 | 集合元素 | $(":image") |
:reset | 选取所有的重置按钮。 | 集合元素 | $(":reset") |
:button | 选取所有的按钮。 | 集合元素 | $(":button") |
:file | 选取所有的上传域。 | 集合元素 | $(":file") |
:hidden | 选取所有不可见元素。 | 集合元素 | $(":hidden") |