jQuery 选择器
jQuery 中的选择器完全继承了 CSS 的风格。jQuery 的行为规则都必须在获取到元素后才能生效。
CSS 选择器找到元素后是添加样式,jQuery 选择器找到元素后是添加行为。
基本选择器
基本选择器是 jQuery 中最常用的选择器,也是比较简单的选择器:
| 选择器 | 描述 | 返回 | 示例 |
|---|---|---|---|
| #id | 根据 id 匹配元素 | 单个元素 | $("#test”) |
| .class | 根据类名匹配元素 | 集合元素 | $(".test”) |
| element | 根据元素名匹配元素 | 集合元素 | $(“p”) |
| * | 匹配所有元素 | 集合元素 | $("*") |
| sel1,sel2,…,seln | 组选择器 | 集合元素 | $(".test,p,#id”) |
层次选择器
可以通过 DOM 元素之间的层次关系来获取特定元素:后代元素、子元素、相邻元素和兄弟元素等。
| 选择器 | 描述 | 返回值 |
|---|---|---|
| $(“ancestor descendant”) | 选取祖先元素里的所有后代元素 | 集合元素 |
| $(“parent > child”) | 选取父元素下匹配的所有子元素 | 集合元素 |
| $(“prev + next”) | 选取 prev 元素后的下一个兄弟元素 | 集合元素 |
| $(“prev~siblings”) | 选取 prev 元素后的所有 siblings 元素 | 集合元素 |
next() 方法:替代 $(“prev + next”) 选择器:
- $(".test + div”); <===> $(".test”).next(“div”);
nextAll() 方法:替代 $(“prev~siblings”) 选择器:
- $("#prev~div”); <===> $("#prev”).nextAll(“div”);
siblings() 方法与 $(“prev~siblings”) 选择器比较:
- $(“prev~div”) 选择器只能选择 #prev 元素后面的兄弟 div 元素
- siblings() 方法与位置无关,查找所有兄弟元素(不包括自己)
属性选择器
属性选择器的规则是通过元素的属性来获取相应的元素。返回值为集合元素。
| 选择器 | 描述 | 示例 |
|---|---|---|
| [attribute] | 选取拥有此属性的元素 | $(“div[id]") |
| [attribute='value’] | 选取属性值为 value 的元素 | $(“div[title='test’]") |
| [attribute!='value’] | 选取属性值不等于 value 的元素 | $(“div[title!='test’]") |
| [attribute^='value’] | 选取属性值以 value 开头的元素 | $(“div[title^='test’]") |
| [attribute$='value’] | 选取属性值以 value 结尾的元素 | $(“div[title$='test’]") |
| [attribute*='value’] | 选取属性值包含 value 值的元素 | $(“div[title*='test’]") |
| [selector1] [selector2] [selectorN] | 使用属性选择器合并成一个符合选择器 | $("div[id][title*='test']") |
过滤选择器
过滤选择器主要通过特定的过滤规则来筛选出所需的 DOM 元素,过滤规则和 CSS 中的伪类选择器语法相同都以冒号(:)开头。按照不同过滤规则分为:基本过滤、内容过滤、可见性过滤、属性过滤、子元素过滤和表单对象属性过滤选择器。
基本过滤选择器
| 选择器 | 描述 | 返回值 | 示例 |
|---|---|---|---|
| :first | 匹配找到的第一个元素 | 单个元素 | $(“ul li:first”) / $(“ul li”).first() |
| :last | 匹配找到的最后一个元素 | 单个元素 | $(“ul li:last”) / $(“ul li”).last() |
| :not(selector) | 去除所有与给定选择器匹配的元素 | 集合元素 | $(“ul li:not(.myClass)") |
| :even | 匹配所有索引值(0开始)为偶数的元素 | 集合元素 | $(“ul li:even”) |
| :odd | 匹配所有索引值(0开始)为奇数的元素 | 集合元素 | $(“ul li:odd”) |
| :eq(index) | 匹配一个给定索引值(0开始)的元素 | 单个元素 | $(“ul li:eq(2)") |
| :gt(index) | 匹配所有大于给定索引值(0开始)的元素 | 集合元素 | $(“ul li:gt(3)") |
| :lt(index) | 匹配所有小于给定索引值(0开始)的元素 | 集合元素 | $(“ul li:lt(5)") |
| :header | 匹配所有标题元素 | 集合元素 | $(":header”) |
| :animated | 匹配所有正在执行动画的元素 | 集合元素 | $(“div:animated”) |
内容过滤选择器
过滤规则主要体现在它所包含的子元素或则文本内容上。
| 选择器 | 描述 | 返回 | 示例 |
|---|---|---|---|
| :contains(text) | 选取含有文本内容为 “text” 的元素 | 集合元素 | $(“div:contains(‘me’)") |
| :empty | 选取不包含子元素或则文本的空元素 | 集合元素 | $(“div:empty”) |
| :has(selector) | 选取含有选择器所匹配的元素的元素 | 集合元素 | $(“div:has(p)") |
| :parent | 选取含有子元素或则文本的元素 | 集合元素 | $(“div:parent”) |
可见性过滤选择器
| 选择器 | 描述 | 返回 | 示例 |
|---|---|---|---|
| :hidden | 选取所有不可见的元素 | 集合元素 | $(":hidden”) |
| :visible | 选取所有可见的元素 | 集合元素 | $(“div:visible”) |
子元素过滤选择器
| 选择器 | 描述 | 返回 | 示例 |
|---|---|---|---|
| :nth-child(index/even/odd) | 选取每个父元素下的第 index(1 开始)个子元素 | 集合元素 | $(“ul li:nth-child(4)") |
| :first-child | 选取每个父元素的第一个子元素 | 集合元素 | $(“ul li:first-child”) |
| :last-child | 选取每个父元素的最后一个子元素 | 集合元素 | $(“ul li:last-child”) |
| :only-child | 匹配父元素中唯一的子元素 | 集合元素 | $(“ul li:only-child”) |
表单选择器
利用表单选择器,可以很方便的获取到表单中的某个或某类型的元素。
| 选择器 | 描述 | 返回 | 示例 |
|---|---|---|---|
| :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”) |
表单对象属性过滤选择器
| 选择器 | 描述 | 返回 | 示例 |
|---|---|---|---|
| :enabled | 选取所有可用元素 | 集合元素 | $("#form1 :enabled”) |
| :disabled | 选取所有不可用元素 | 集合元素 | $("#form2 :disabled”) |
| :checked | 选取所有被选中的元素(单选框,复选框) | 集合元素 | $(“input:checked”) |
| :selected | 选取所有被选中的选项元素(下拉列表) | 集合元素 | $("#select > option:selected”) |