0

0

Jquery 选择器全面详解

零下一度

零下一度

发布时间:2017-07-19 16:56:40

|

1392人浏览过

|

来源于php中文网

原创

1   概述

我们已经使用了带有简单Css选择器的jQuery选取函数:$()。现在是时候深入了解jQuery选择器语法,以及一些提取和扩充选中元素集的方法了。

  一、jQuery选择器

在CSS3选择器标淮草案定义的选择器语法中,jQuery支持相当完整的一套子集,同时还添加了一些非标准但很有用的伪类。注意:本节讲述的是 jQuery选择器。其中有不少选择器(但不是全部)可以在CSS样式表中使用。选择器语法有三层结构。你肯定已经见过选择器中最简单的形式。”#te st”选取id属性为”test”的元素。”blockquote”选取文档中的所有

元素,而”div.note” 则选取所有class属性为”note”的
元素。简单选择器可以组合成“组合选择器”,比如 “div.note>p”和“blockquote i”,只要用组合字符做分隔符就行。简单选择器和组合选择器还可以分组成逗号分隔的列表。这种选择器组是传递给$()函数最常见的形式。在解释组合选择器 和选择器组之前,我们必须先了解简单选择器的语法。


2   基本选择器

2.1  一览表

2.2  示例代码

 (1)id选择器

将id为lastname元素的背景色设置为蓝色

 1  2  3  4  5      6      7     JQuery函数 8     15 16 17     
id为lastname的选择器
18 19
View Code

(2)类选择器

将class为intro元素的背景色设置为蓝色

 1  2  3  4  5      6      7     JQuery函数 8     15 16 17     
div选择器测试
18

p测试选择器

19 20
View Code

(3)元素选择器

将p元素的背景色设置为蓝色

 1  2  3  4  5      6      7     JQuery函数 8     15 16 17      

p测试选择器

18 19
View Code

(4)所有选择器

遍历body下的所有元素,将其背景色设置为蓝色

 1  2  3  4  5      6      7     JQuery函数 8     15 16 17     
选择器测试
18

p元素

19 20
View Code

(5)并列选择器

 将元素p和元素div背景色设置为蓝色

 1  2  3  4  5      6      7     JQuery函数 8     15 16 17     
选择器测试
18

p元素

19 20
View Code

3   层次选择器

3.1 一览表

3.2 示例代码

(1)parent>child(直系子元素,即直接下一代元素)

设置div元素的第一代元素为span的元素的背景色为蓝色

 1  2  3  4  5      6      7     JQuery函数 8     15 16 17     
18 DOM树,DIV第一代19

20 DOM树,第二代21

22 DOM树,DIV第一代23
24 25
View Code

测试结果:

结果分析:根据如上代码画出的DOM树如下,可以很清晰看出,DIV有三个直接孩子,即第一代span,p,span,代码中div>span,表示div下的直接第一代span,因此,测试结果就不难理解了。

(2)prev+next(prev元素的下一个兄弟元素,等同于next()方法)

设置类为intro元素的下一个兄弟元素背景色为蓝色

 1   2  3  4  5      6      7     JQuery函数 8     16 17 18     
1
19

2

20
3
21
4
22 523
6
24 25
View Code

测试结果:

结果分析:根据如上代码画出DOM树如下图,测试结果显而易见。

(3)prev~siblings(prev元素的所有兄弟元素,等同于nextAll()方法)

 设置类为intro元素之后的所有兄弟元素为div元素的背景色为蓝色

 1  2  3  4  5      6      7     JQuery函数 8     14 15 16     
G0
17
G1
18
G2
19 G320
G4
21 22
View Code

测试结果:

分析测试结果:根据如上代码画出DOM树如下图,测试结果显而易见。

4   过滤选择器

4.1 基本过滤选择器

4.1.1  一览表

4.1.2  代码示例

(1):first(选取第一个元素)

 1  2  3  4  5      6      7     JQuery函数 8     14 15 16     G117     G218     G319 20 
View Code

测试结果:

(2):last(选取最后一个元素)

 1  2  3  4  5      6      7     JQuery函数 8     14 15 16     G117     G218     G319 20 
View Code

测试结果:

(3):not(取非元素)

 1  2  3  4  5      6      7     JQuery函数 8     14 15 16     
G1
17
G2
18 19
View Code

但是,请注意下面的代码:当G1所在div和G2所在div是父子关系时,G1和G2都会变色。

1 
2 G1
G2
3
View Code

(4):even(索引为偶数,索引 index从0开始)

 1  2  3  4  5      6      7     JQuery函数 8     14 15 16     
G1
17
G2
18
G3
19
G4
20 21
View Code

测试结果:

(5):odd(索引为奇数,索引 index从0开始)

 1  2  3  4  5      6      7     JQuery函数 8     14 15 16     
G1
17
G2
18
G3
19
G4
20 21
View Code

测试结果:

(6):eq(x)(取指定索引的元素,x为从0开始的索引)

设置索引为2的div元素背景为蓝色

 1  2  3  4  5      6      7     JQuery函数 8     14 15 16     
G1
17
G2
18
G3
19
G4
20 21
View Code

测试结果:

(7):lt(x))(取小于指定索引的元素,x为从0开始的索引)

 1  2  3  4  5      6      7     JQuery函数 8     14 15 16     
G1
17
G2
18
G3
19
G4
20 21
View Code

测试结果:

(8):gt(x))(取大于指定索引的元素,x为从0开始的索引)

 1  2  3  4  5      6      7     JQuery函数 8     14 15 16     
G1
17
G2
18
G3
19
G4
20 21
View Code

测试结果:

(8):header(取h1-h6标题元素)

 1  2  3  4  5      6      7     JQuery函数 8     14 15 16     

测试H1标题

17
G1
18
G2
19
G3
20

测试h2标题

21

测试h3标题

22

测试h4标题

23
G4
24
测试h5标题
25
测试h6标题
26 27
View Code

测试结果:

(9):animated(所有动画元素)

 1  2  3  4  5      6      7     JQuery函数 8     21     30 31 32     
33
34
35 36 37
View Code

测试结果:

 

4.2 内容过滤选择器

4.2.1 一览表

4.2.2 示例代码

(1):contains(text)(取包含text文本的元素)

 1  2  3  4  5      6      7     JQuery函数 8     14     15 16 17     
G1
18
G2
19
G3
20 21
View Code

测试结果:

(2):empty(取不包含子元素或文本为空的元素)

界面简洁的jQuery日期时间选择器
界面简洁的jQuery日期时间选择器

界面简洁的jQuery日期时间选择器

下载
 1  2  3  4  5      6      7     JQuery函数 8     14     15 16 17     
G1
18
G2
19
G3
20
21 22
View Code

测试结果:

(3) :has(selector)(取选择器匹配的元素)

即使span不是div的直系子元素,也会生效

 1  2  3  4  5      6      7     JQuery函数 8     15     16 17 18     
19

20 A B21

22
23 24
View Code

测试结果:

(4):parent(取包含子元素或文本的元素)

 1  2  3  4  5      6      7     JQuery函数 8     14     15 16 17     
    18
  1. 19
  2. A
  3. 20
  4. 21
  5. D
  6. 22
23 24
View Code

测试结果:

4.3 可见性过滤选择器

4.3.1 一览表

4.3.2 示例代码

(1):hidden(取不可见的元素)

匹配display:none,,visibility:hidden,capacity:0元素

 1  2  3  4  5      6      7     JQuery函数 8     14     35 36 37     
display: none
38
visibility: hidden
39 40 41
View Code

测试结果:

(2):visible(取可见的元素)

 1  2  3  4  5      6      7     JQuery函数 8     14     15 16 17     
G1
18
G2
19
G3
20
G4
21 22 23 24 25 26
View Code

测试结果:

4.4 属性过滤选择器

4.4.1 一览表

4.4.2 代码示例

(1)[attribute](取拥有attribute属性的元素)

 1  2  3  4  5      6      7     JQuery函数 8     14     15 16 17     
G1
18
G2
19
G3
20
G4
21 22 23 24 25 26
View Code

测试结果:

(2)[attribute = value](取attribute属性值等于value)

 1  2  3  4  5      6      7     JQuery函数 8     14     15 16 17     
G1
18
G2
19
G3
20
G4
21 22 23 24 25 26
View Code

测试结果:

(3) [attribute != value](取attribute属性值不等于value的元素)

 1  2  3  4  5      6      7     JQuery函数 8     14     15 16 17     
G1
18
G2
19
G3
20
G4
21 22 23 24 25 26
View Code

测试结果:

(4)[attribute $= value](attribute属性值以value结束)

 1  2  3  4  5      6      7     JQuery函数 8     14     15 16 17     
G1
18
G2
19
G3
20
G4
21 22 23
View Code

测试结果:

(5))[attribute^= value](attribute属性值以value开始)

 1  2  3  4  5      6      7     JQuery函数 8     14     15 16 17     
G1
18
G2
19
G3
20
G4
21 22 23 24 25 26
View Code

测试结果:

(6)[attribute *= value](attribute属性值包含value值)

 1  2  3  4  5      6      7     JQuery函数 8     14     15 16 17     
G1
18
G2
19
G3
20
G4
21 22 23
View Code

测试结果:

注释:在属性选择器中,^$符号和正则表达式的开始结束符号表示的含义是一致的,*模糊匹配,类似于sql中的like '%str%'。

(7)[selector1][selector2](复合型属性过滤器,同时满足多个条件)

 1  2  3  4  5      6      7     JQuery函数 8     14     15 16 17     
G1
18
G2
19
G3
20
G4
21 22 23 24 25 26
View Code

测试结果:

4.5 子元素过滤选择器

4.5.1 一览表

4.5.2 代码示例

(1)first-child(表示匹配的第一个元素)和last-child(表示匹配的最后一个子元素)

 需要大家注意的是,:fisrst和:last返回的都是单个元素,而:first-child和:last-child返回的都是集合元素。举个 例子:div:first返回的是整个DOM文档中第一个div元素,而div:first-child是返回所有div元素下的第一个元素合并后的集 合。

 1  2  3  4  5      6      7     JQuery函数 8     14 15 16      
17
1
18
2
19

3

20
21
4
22
last
23 24
View Code

测试结果:

(3)only-child(当某个元素有且仅有一个子元素时,:only-child才会生效)

 1  2  3  4  5      6      7     JQuery函数 8     13 14 15      
16
1
17
2
18

3

19
20
4
21
last22
ddd
23
24 25
View Code

测试结果:

(4)nth-child

看到这个就想起英文单词里的,fourth, fifth, sixth……,nth表示第n个,:nth-child就表示第n个child元素。要注意的是,这儿的n不像eq(x)、gt(x)或lt(x)是从 0开始的,它是从1开始的,英文里好像也没有zeroth这样的序号词吧。

:nth-child有三种用法:

1) :nth-child(x),获取第x个子元素
2) :nth-child(even)和:nth-child(odd),从1开始,获取第偶数个元素或第奇数个元素
3) :nth-child(xn+y),x>=0,y>=0。例如x = 3, y = 0时就是3n,表示取第3n个元素(n>=0)。实际上xn+y是上面两种的通项式。(当x=0,y>=0时,等同于:hth- child(x);当x=2,y=0时,等同于nth-child(even);当x=2,y=1时,等同于:nth-child(odd))

4.6 表单对象属性过滤选择器

4.6.1 一览表

4.6.2 代码示例

(1):enabled和:disabled(取可用或不可用元素)

:enabled和:diabled的匹配范围包括input, select, textarea

 1  2  3  4  5      6      7     JQuery函数 8     15     16 17 18     
19 20
21
22 23
24
25 26
27
28 32
33 34
View Code

测试结果:

(2):checked(取选中的单选框或复选框元素)

 1  2  3  4  5      6      7     JQuery函数 8     15     16 17 18      Male19     
20 Female21
22 I have a bike:23 24
25 I have a car:26 27
28 I have an airplane:29 30 31 32 33
View Code

(3):selected(取下拉列表被选中的元素)

 1  2  3  4 11 12 13 14 20 
21 22 23
View Code

5   表单选择器

5.1 一览表

5.2 测试代码

(1):input()(选择所有input元素)

 1  2  3  4  5      6      7     JQuery函数 8     13 14 15     
16 Name: 17
18 Password: 19
20 21 22
23 24 25
26
27 28
View Code

测试结果:

(2):text(选取所有text元素)

 1  2  3  4  5      6      7     JQuery函数 8     13 14 15     
16 Name: 17
18 Password: 19
20 21 22
23 24 25
26
27 28
View Code

测试结果:

(3):select和:button

(4)其他表单元素比较简单,在此不列举。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
go语言 注释编码
go语言 注释编码

本专题整合了go语言注释、注释规范等等内容,阅读专题下面的文章了解更多详细内容。

0

2026.01.31

go语言 math包
go语言 math包

本专题整合了go语言math包相关内容,阅读专题下面的文章了解更多详细内容。

1

2026.01.31

go语言输入函数
go语言输入函数

本专题整合了go语言输入相关教程内容,阅读专题下面的文章了解更多详细内容。

1

2026.01.31

golang 循环遍历
golang 循环遍历

本专题整合了golang循环遍历相关教程,阅读专题下面的文章了解更多详细内容。

0

2026.01.31

Golang人工智能合集
Golang人工智能合集

本专题整合了Golang人工智能相关内容,阅读专题下面的文章了解更多详细内容。

1

2026.01.31

2026赚钱平台入口大全
2026赚钱平台入口大全

2026年最新赚钱平台入口汇总,涵盖任务众包、内容创作、电商运营、技能变现等多类正规渠道,助你轻松开启副业增收之路。阅读专题下面的文章了解更多详细内容。

66

2026.01.31

高干文在线阅读网站大全
高干文在线阅读网站大全

汇集热门1v1高干文免费阅读资源,涵盖都市言情、京味大院、军旅高干等经典题材,情节紧凑、人物鲜明。阅读专题下面的文章了解更多详细内容。

71

2026.01.31

无需付费的漫画app大全
无需付费的漫画app大全

想找真正免费又无套路的漫画App?本合集精选多款永久免费、资源丰富、无广告干扰的优质漫画应用,涵盖国漫、日漫、韩漫及经典老番,满足各类阅读需求。阅读专题下面的文章了解更多详细内容。

67

2026.01.31

漫画免费在线观看地址大全
漫画免费在线观看地址大全

想找免费又资源丰富的漫画网站?本合集精选2025-2026年热门平台,涵盖国漫、日漫、韩漫等多类型作品,支持高清流畅阅读与离线缓存。阅读专题下面的文章了解更多详细内容。

19

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
jQuery 教程
jQuery 教程

共42课时 | 5.1万人学习

HTML+CSS基础与实战
HTML+CSS基础与实战

共132课时 | 10万人学习

tp6+adminlte搭建通用后台
tp6+adminlte搭建通用后台

共39课时 | 5.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号