一,基本介绍
jQuery 选择器用于查找 DOM 元素,基于元素的 id、类、类型、属性、属性值等选择。以下是常用的 jQuery 选择器及其用法:
-
基本选择器
$("#id")
:选择ID为id
的元素。$(".class")
:选择类为class
的所有元素。$("element")
:选择所有element
元素。$("*")
:选择文档中的所有元素。$("#id, .class, element")
:组合选择器,选择多个不同的元素。
-
层级选择器
$("ancestor descendant")
:选择ancestor
元素的所有descendant
后代元素。$("parent > child")
:选择parent
元素的直接child
子元素。$("prev + next")
:选择紧接在prev
元素后面的next
元素。$("prev ~ siblings")
:选择prev
元素后面的所有siblings
兄弟元素。
-
属性选择器
$("element[attr]")
:选择所有带有属性attr
的element
元素。$("element[attr='value']")
:选择属性attr
值为value
的element
元素。$("element[attr*='value']")
:选择属性attr
值包含value
的element
元素。$("element[attr^='value']")
:选择属性attr
值以value
开头的element
元素。$("element[attr$='value']")
:选择属性attr
值以value
结尾的element
元素。
-
表单选择器
:input
:选择所有<input>
、<textarea>
、<select>
和<button>
元素。:text
:选择所有单行文本框。:password
:选择所有密码框。:radio
:选择所有单选按钮。:checkbox
:选择所有复选框。:submit
:选择所有提交按钮。:reset
:选择所有重置按钮。:button
:选择所有按钮。:file
:选择所有文件域。
-
过滤选择器
:first
:选择第一个匹配的元素。:last
:选择最后一个匹配的元素。:not(selector)
:选择与selector
不匹配的所有元素。:even
:选择索引为偶数的元素,从0开始计数。:odd
:选择索引为奇数的元素,从0开始计数。:eq(index)
:选择索引等于index
的元素。:gt(index)
:选择索引大于index
的元素。:lt(index)
:选择索引小于index
的元素。:header
:选择所有标题元素,如<h1>
、<h2>
等。:animated
:选择所有正在执行动画的元素。
-
内容选择器
:contains(text)
:选择包含指定文本text
的元素。:empty
:选择没有任何子元素(包括文本节点)的元素。:has(selector)
:选择含有选择器匹配元素的元素。:parent
:选择有子元素(包括文本节点)的元素。
-
可见性选择器
:hidden
:选择所有隐藏的元素。:visible
:选择所有可见的元素。
这些选择器可以单独使用,也可以组合使用,以实现更复杂的选择逻辑。例如,$("#myForm :input[type='text']:disabled")
会选择ID为myForm
的表单内所有禁用的文本输入框。
二,实例
以下是一些具体的例子,展示了如何使用不同的 jQuery 选择器:
-
基本选择器
- 选择ID为
myDiv
的元素:$("#myDiv");
- 选择类为
myClass
的所有元素:$(".myClass");
- 选择所有
<p>
元素:$("p");
- 选择所有元素:
$("*");
- 选择ID为
myDiv
的元素和类为myClass
的所有元素:$("#myDiv, .myClass");
- 选择ID为
-
层级选择器
- 选择
<div>
内的所有<p>
元素:$("div p");
- 选择
<div>
的直接子<p>
元素:$("div > p");
- 选择紧接在
<div>
后面的<p>
元素:$("div + p");
- 选择
<div>
后面的所有<p>
兄弟元素:$("div ~ p");
- 选择
-
属性选择器
- 选择所有带有
data-src
属性的<img>
元素:$("img[data-src]");
- 选择属性
data-src
值为example.jpg
的<img>
元素:$("img[data-src='example.jpg']");
- 选择属性
data-src
值包含example
的<img>
元素:$("img[data-src*='example']");
- 选择属性
data-src
值以example
开头的<img>
元素:$("img[data-src^='example']");
- 选择属性
data-src
值以.jpg
结尾的<img>
元素:$("img[data-src$='.jpg']");
- 选择所有带有
-
表单选择器
- 选择所有文本输入框:
$(":text");
- 选择所有密码框:
$(":password");
- 选择所有单选按钮:
$(":radio");
- 选择所有复选框:
$(":checkbox");
- 选择所有提交按钮:
$(":submit");
- 选择所有文本输入框:
-
过滤选择器
- 选择第一个
<p>
元素:$("p:first");
- 选择最后一个
<p>
元素:$("p:last");
- 选择索引为偶数的
<tr>
元素:$("tr:even");
- 选择索引为奇数的
<tr>
元素:$("tr:odd");
- 选择索引等于3的
<tr>
元素:$("tr:eq(3)");
- 选择索引大于3的
<tr>
元素:$("tr:gt(3)");
- 选择索引小于3的
<tr>
元素:$("tr:lt(3)");
- 选择第一个
-
内容选择器
- 选择包含文本“Hello”的
<p>
元素:$("p:contains('Hello')");
- 选择没有任何子元素的
<div>
元素:$("div:empty");
- 选择含有
<span>
元素的<div>
元素:$("div:has(span)");
- 选择有子元素的
<div>
元素:$("div:parent");
- 选择包含文本“Hello”的
-
可见性选择器
- 选择所有隐藏的
<input>
元素:$(":hidden");
- 选择所有可见的
<input>
元素:$(":visible");
- 选择所有隐藏的