jQuery 选择器总结

几乎使用 jQuery 方法的时候,第一件事就是选择将要被操作的页面元素,恰好 jQuery 提供了强大的选择器语法,能够轻松地指定几乎任何元素集合,这里总结了一下 jQuery 的选择器,总体来说还是比较简单的,支持几乎所有的 CSS 选择器。

注意,在位置选择器中 nth-child(n) 选择器从 1 开始计数是为了与 CSS 兼容,而其他选择器遵循常见的从 0 开始的编程习惯。

基本 CSS 选择器

选择器 描述
a 匹配所有 a 标签元素
#specialID 匹配 id 为 specialID 的元素
.specialClass 匹配拥有 CSS 类 specialClass 的元素
a#specialID.specialClass 匹配 id 为 specialID、拥有 CSS 类 specialClass 的链接元素
p a.specailClass 匹配拥有 CSS 类 specialClass、在 p 标签内的链接元素

子选择器、容器选择器和特性选择器

选择器 描述
* 任何元素
E 标签名称为 E 的所有元素
E F 标签名称为 F、作为 E 的后代节点的所有元素
E>F 标签名称为 F、作为 E 的直接子节点的所有元素
E+F 前面是邻近兄弟节点 E 的所有元素 F(E 和 F 紧挨着)
E~F 前面是任何兄弟节点 E 的所有元素 F(E 和 F 可以不紧挨着)
E:has(F) 标签名称为 E、至少又一个标签名称为 F 的后代节点的所有元素
E.C 带有类名 C 的所有元素 E,.C 等效于 *.C
E#I id 特性值为 I 的所有元素 E,#I 等效于 *#I
E[A] 带有特性 A 的所有元素 E(不管特性 A 的值是什么
E[A=V] 所有元素 E,其特性 A 的值正好是 V
E[A^=V] 所有元素 E,其特性 A 的值以 V 开头
E[A$=V] 所有元素 E,其特性 A 的值以 V 结尾
E[A*=V] 所有元素 E,其特性 A 的值包含 V

位置选择器

选择器 描述
:first 页面的最先的匹配
:last 页面的最后的匹配
:first-child 最先的子元素
:last-child 最后的子元素
:only-child 返回没有兄弟节点的所有元素
:nth-child(n) 第 n 个子节点,n 从 1 开始
:nth-child(even odd)
:nth-child(Xn+Y) 根据传入的公式计算的第 n 个子节点
:even 或 :odd 页面范围内偶数或奇数的匹配元素
:eq(n) 第 n 个匹配元素,n 从 0 开始
:gt(n) 第 n 个匹配元素(不包括)之后的元素,n 从 0 开始
:lt(n) 第 n 个匹配元素(不包括)之前的元素,n 从 0 开始

:first:last 比较晕!

自定义 jQuery 选择器

选择器 描述
:animated 当前处于动态控制之下的元素
:button 任何按钮(input[type=submit]、input[type=reset]、input[type=button] 或 button)
:checkbox 复选框元素(input[type=checkbox])
:checked 已选中的复选框或单选按钮
:contains(foo) 包含文本 foo 的元素
:disabled 在界面上已禁用的表单元素
:enabled 在界面上已启用的表单元素
:file 文件元素(input[type=file])
:header 标题元素,h1 ~ h6
:hidden 隐藏的元素
:image 表单图像元素(input[type=image])
:input 表单元素,input、select、textarea、button
:not(filter) 根据指定的筛选器进行求反
:parent 拥有后代节点(包括文本)的元素
:password 口令元素(input[type=password])
:radio 单选按钮元素(input[type=radio])
:reset 复位按钮元素(input[type=reset] 或 button[type=reset])
:selected 已选中的选项元素
:submit 提交按钮元素(input[type=submit] 或 button[type=submit])
:text 文本字段元素(input[type=text])
:visible 可见的元素