jQuery 选择器

jQuery 选择器基于 CSS 语法并做了大量扩展,是 jQuery 的基石。本页按类别梳理最常用的选择器,作为日常开发的速查手册;每个选择器放进 $("...") 都能返回匹配的元素集合。

基本选择器

选择器说明
*匹配页面所有元素
#id匹配指定 id 的元素
.class匹配指定 class 的所有元素
element匹配指定标签名的所有元素
sel1, sel2逗号合并,匹配其中任意一个
$("#main");    // id 为 main 的元素
$(".item");    // class 含 item 的所有元素
$("p, .item"); // 所有 <p> 以及 class 含 item 的元素

层级选择器

选择器说明
A BA 内部所有后代 B
A > BA 的直接子元素 B
A + BA 后面紧邻的兄弟 B
A ~ BA 之后的所有兄弟 B
$("ul li");   // ul 内所有 li(含嵌套)
$("ul > li"); // ul 的直接子 li
$("h2 + p");  // h2 后面紧挨着的那个 p

基础过滤选择器

选择器说明
:first / :last第一个 / 最后一个
:eq(n)索引为 n 的那个(从 0 数起)
:gt(n) / :lt(n)索引大于 n / 小于 n
:not(sel)不匹配 sel 的元素
$("li:first");        // 第一个 li
$("li:eq(2)");        // 第 3 个 li
$("li:not(.active)"); // 没有 .active 类的 li

内容与可见性过滤

选择器说明
:contains(文本)文本包含指定内容的元素
:has(sel)内部存在匹配 sel 子元素的元素
:empty没有子元素与文本的空元素
:hidden / :visible隐藏的 / 可见的元素

例如 $("p:contains(你好)") 会选出文本含"你好"的段落,$("div:has(.btn)") 选出内部含有 .btn 的 div,效果一目了然。

属性选择器

选择器说明
[attr]带 attr 属性的元素
[attr=val]attr 值等于 val
[attr^=val]attr 值以 val 开头
[attr$=val]attr 值以 val 结尾
[attr*=val]attr 值包含 val
$("input[type='text']"); // 所有文本框
$("a[href^='https']");   // https 开头的链接
$("a[href$='.pdf']");    // 以 .pdf 结尾的链接

表单选择器

选择器说明
:input所有表单控件
:checked被选中的单选或复选框
:selected被选中的下拉选项
:focus当前获得焦点的元素
$(":checked");          // 被选中的 radio / checkbox
$("option:selected");   // 下拉框中当前选中的 option

小结:选择器决定"对谁操作",是 jQuery 一切动作的起点。配合 CSS 语法与冒号过滤器,几乎任何元素都能被精确选中;选中之后,还可再用遍历方法继续筛选。

笔记加载中…