JavaScript程序库jQuery学习笔记分享(二)jQuery选择器(1)

本文深入讲解了jQuery选择器的分类及应用,包括基本选择器、层次选择器、过滤选择器和表单选择器,展示了如何高效地定位和操作DOM元素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

       什么是选择器?

       选择器是jQuery的根基,在jQuery中,所有的操作,例如事件处理,遍历DOM和Ajax操作都依赖于选择器。因为只有先选中我们需要操作的元素,才能够进行相应的操作,下面就给大家介绍一下jQuery选择器,后面还有一个实例,帮助大家理解。

 

一:jQuery选择器简介和优势

      1.简介

         jQuery中的选择器完全继承了CSS风格。但与CSS不同的是,CSS选择器是找到元素后添加样式,jQuery选择器是找到元素后添加行为。利用jQuery选择器,可以非常便捷和快速地找出特定的DOM元素,然后为它们添加相应的行为,而无需担心浏览器是否支持这一选择器。

      2.优势

      (1)写法简单

           $()函数在许多javaScript函数库中都被作为一个选择器函数来使用,在jQuery也是。在jQuery中,$("#ID")用来替代document.getElementById()函数,通过ID获取元素;;$("tagName")用来代替document.getElementsByTagName()函数,通过标签名获取html元素。。

      (2)支持CSS1到CSS3选择器

          jQuery选择器支持CSS1到CSS2的全部和CSS3的部分选择器,同时也有少量独有的选择器。并且无需考虑浏览器兼容性问题。

      (3)完善的处理机制

          jQuery在一些问题上的处理是非常不错的,即使用jQuery获取网页中不存在的元素也不会报错。但要注意的是,$()获取的是jQuery对象,因此要检查某个元素在网页上是否存在时,应该获取到元素的长度或者转化为DOM对象来判断。

 

二:jQuery选择器分类

       jQuery选择器分为基本选择器,层次选择器,过滤选择器和表单选择器

      1.基本选择器       

         内容:基本选择器是jQuery中最常用的选择器,也是最简单的选择器,它通过id,class和标签名等来查找DOM元素,每一个id名称只能使用一次,class允许重复使用。

       用法:

选择器作用返回值示例
#id根据给定的id匹配一个元素单个元素$("#a")选取id="a"的元素
.class根据给定的类名匹配元素集合元素$(".b")选取所有class="b"的元素
element根据给定的元素名匹配元素集合元素$("my")选取所有的<my>元素
*匹配所有的元素集合元素$("*")选取所有的元素

selector,selector,

......selectorN

将每一个选择器匹配到的元素合并后一起返回集合元素

$(a,b,#c,.my)选取所有的<a>,<b>和拥有id="c"元素下的所有的class为my的元素

 

        2.层次选择器

               如果想通过DOM元素之间的层次关系来获取特定元素,例如后代元素,子元素,相邻元素和同辈元素,那就要用到层次选择器。

选择器描述返回示例
$("a b")选取a元素里的所有b(后代)元素集合元素$("a b")选取<a>
$("a > b")选取a元素下的b(子)元素,与$("a b")有区别集合元素$("a > b")选取<a>元素下元素名是<b>的子元素
$("a + b")选取紧接在a元素后的b元素集合元素$("a + b")选取<a>元素的下一个<b>同辈元素
$("a ~ b")选取a元素之后的所有<b>元素集合元素$("a ~ b")选取<a>元素后面的所有<b>同辈元素

   在层次选择器中,第一个和第二个选择器比较常用。可以用next()方法替代$("a + b")选择器,用nextAll()方法替代$("a ~ b")选择器。

 

        3.过滤选择器

             过滤选择器通过特定的过滤规则来筛选出所需的DOM元素,过滤规则与CSS中的伪类选择器语法相同,即选择器都以一个冒号(:)开头。按照不同的过滤规则,过滤选择器可以分为基本过滤,内容过滤,可见性过滤,属性过滤,子元素过滤和表单对象属性过滤选择器。

(1)基本过滤选择器

选择器描述返回示例
:first选取第一个元素单个元素$("a:first")选取所有<a>元素中第一个<a>元素
:last选取最后一个元素单个元素$("a:last")选取所有<a>元素中最后一个<a>元素
:not(selector)去除所有与给定元素匹配的元素集合元素$("input:not(.b)")选取所有class不是b的<input>元素
:even选取索引是偶数的所有元素(从0开始)集合元素$("input:even")选取索引是偶数的<input>元素
:odd选取索引是奇数的所有元素(从0开始)集合元素$("input:odd")选取索引是奇数的<input>元素
:eq(index)选取索引等于index的元素(从0开始)单个元素$("input:eq(1)")选取索引等于1的<input>元素
:gt(index)选取索引大于index的元素(从0开始)集合元素$("input:gt(1)")选取索引大于1的<input>元素
:lt(index)选取索引小于index的元素(从0开始)集合元素$("input:lt(1)")选取索引小于1的<input>元素
:header选取所有的标题元素集合元素$(":header")选取网页中的所有的<h1>,<h2>,<h3>......标题元素
:animated选取当前正在执行动画的所有元素集合元素$("div:animated")选取正在执行动画的<div>元素
:focus选取当前获取焦点的元素集合元素

$(":focus")选取当前获取焦点的元素

 

(2)内容过滤选择器

选择器描述返回示例
:contains(text)选取含有文本内容为"text"的元素集合元素$("div:contains('什么')")选取含有文本'什么'的<div>元素
:empty选取不包含子元素或者文本的空元素集合元素$("div:empty")选取不包含子元素(以及文本元素)的<div>空元素
:has(selector)选取含有选择器匹配的元素的元素集合元素$("div:has(p)")选取含有<p>元素的<div>元素
:parent选取含有子元素或者文本的元素集合元素$("div:parent")选取拥有子元素(以及文本元素)的<div>元素

 

(3)可见性过滤选择器

 

选择器描述返回示例
:hidden选取所有不可见的元素集合元素

$(":hidden")选取所有不可见的元素,$("input:hidden")选取所有<input>元素中的不可见的元素

 

:visible选取所有可见的元素集合元素$("div:visible")选取所有可见的<div>元素

 

(4)属性过滤选择器

选择器描述返回示例
[attribute]选取拥有此属性的元素集合元素$("div[id]")选取拥有属性id的元素
[attribute=value]选取属性值为value的元素集合元素$("div[class=my]")选取属性class为"my"的<div>元素
[attribute!=value]选取属性值不等于value的元素集合元素$("div[class!=my]")选取属性class不等于"my"的<div>元素(没有属性class的<div>元素也会被选取)
[attribute^=value]选取属性值以value开始的元素集合元素$("div[class^=my]")选取属性class以"my"开始的<div>元素
[attribute$=value]选取属性值以value结束的元素集合元素$("div[class$=my]")选取属性class以"my"结束的<div>元素
[attribute*=value]选取属性值含有value的元素集合元素$("div[class*=my]")选取属性class含有"my"的<div>元素
[attribute|=value]选取属性等于给定字符串或以该字符串为前缀(该字符串后跟一个连字符"-")的元素集合元素$("div[b!="my"]")选取属性b等于my或以my为前缀(该字符串后跟一个连字符'-')的元素
[attribute~=value]选取属性用空格分隔的值中包含一个给定值的元素集合元素$("div[class~="my"]")选取属性class用空格分隔的值中包含字符my的元素
[attribute1][attribute2][attribute3]用属性选择器合并成一个复合属性选择器,满足多个条件。每选择一次,缩小范围集合元素$("div[class][id][a^='my']")选取拥有属性class。并且属性a以"my"开始的<div>元素

 

(5)子元素过滤选择器

选择器描述返回示例
:nth-child(index/even/odd/equation)选取每个父元素下的第index个子元素或者奇偶元素(index从1算起)集合元素与:eq()index有所区别,:nth_child将为每一个父元素匹配子元素,并且是从1开始的

:first-child.

选取每个父元素的第一个子元素集合元素:first只返回单个元素,而:first-child选择器将为每个父元素匹配第一个子元素
:last-child选取每个父元素的最后一个子元素集合元素:last只返回单个元素,而:last-child选择器将为每个父元素匹配第一个子元素
:only-child如果某个元素是它父元素中唯一的元素,那么将会匹配,如果父元素中含有其他元素,则不会匹配集合元素$("a b:only-child")在<a>中选取是惟一子元素的<b>元素

 

(6)表单对象属性过滤选择器

选择器描述返回示例
:enabled选取所有可用元素集合元素$("#my:enabled")选取id为"my"的表单内的所有可用元素
:disabled选取所有不可用元素集合元素$("#my:disabled")选取id为"my"的表单内的所有不可用元素
:checked选取所有被选中的元素(单选框,复选框)集合元素$("input:checked")选取所有被选中的<input>元素
:selected选取所有被选中的选项元素(下拉列表)集合元素$("select option:selected")选取所有被选中的选项元素

 

4.表单选择器

   当然,jQuery还提供了表单选择器,使用户能够更加灵活地操作表单。

选择器描述返回
:input选取所有的<input>,<textarea>,<select>和<button>元素集合元素
:text选取所有的单行文本框集合元素
:password选取所有的密码框集合元素
:radio选取所有的单选框集合元素
:checkbox选取所有的多选框集合元素
:submit选取所有的提交按钮集合元素
:image选取所有的图像按钮集合元素
:reset选取所有的重置按钮集合元素
:button选取所有的按钮集合元素
:file选取所有的上传域集合元素
:hidden选取所有不可见元素集合元素

 

选择器基本上就是这么多了,还有一些其他的选择器,这里就不一一介绍了,在下一个文章中,将展示一些选择器的使用和在实际问题中如何使用这些选择器。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SAP顾问李昂

你的创作将会激励我,谢谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值