轻松学会jQuery选择器的用法
创始人
2024-04-09 00:15:16

文章目录

    • ⛳️ 选择器
      • ✨ 属性选择器
      • ✨ 包含选择器
      • ✨ 位置选择器
      • ✨ 过滤选择器
      • ✨ 反向选择器
    • ⛳️ 快速投票

⛳️ 选择器

在这里插入图片描述
  本篇重点讲解jQuery中丰富的选择器,以及他们的基本用法。CSS的选择器均可以用jQuery的$进行选择,部分浏览器对CSS3的选择器支持不全,可以用jQuery作为补充,所以本篇重点介绍jQuery扩展的选择器

✨ 属性选择器

  属性选择器的语法是在标记的后面用方括号[和]添加相关的属性,然后赋予其不同的逻辑关系。jQuery中的属性选择器的用法如下:

属性选择器说明
E.C选中所有名称为E的标记,并且属性类别为C;如果去掉E,就是属性选择器.C
E#I选中所有名称为E的标记,并且id为I;如果去掉E,就是id选择器#I
E[A]选中所有名称为E的标记,并且设置了属性A
E[A=V]选中所有名称为E的标记,并且设置了属性A的值为V
E[A^=V]选中所有名称为E的标记,并且设置了属性A的值以V开头
E[A$=V]选中所有名称为E的标记,并且设置了属性A的值以V结尾
E[A*=V]选中所有名称为E的标记,并且设置了属性A的值中包含V

【1】追加、移除和切换样式

  追加用法:$(‘p’).addClass(‘test’);

  移除用法:$(‘p’).removeClass(‘demo’);

备注:p为标记,test和demo为标记的class属性值。


追加和移除样式

段落标签

效果展示:
请添加图片描述

  以上代码定义了HTML框架,以及相关的CSS类别,供测试使用,此时的显示效果是点击后无任何反应。

  如果希望在页面中选择设置了demo属性的标记,并给标记添加或者移除某个样式,可以使用如下方法实现。


追加和移除样式

段落标签

效果展示:
在这里插入图片描述
  不管是追加还是移除,在实际操作中,都不便于具体得使用逻辑,我们大多数使用逻辑都是喜欢点击一个按钮能喜欢两种样式的切换,所以有toggleClass()方法帮我们实现切换样式的需求。

  切换用法:$(‘p’).toggleClass(‘demo’);


切换样式

段落标签

运行效果:
在这里插入图片描述
【2】根据属性值添加样式

案例原始代码:




原始代码运行效果:
在这里插入图片描述

  如果希望在页面中选择设置了title属性的标记,并给这些超链接添加myClass样式,则可以使用如下代码:

	

运行效果:
在这里插入图片描述

  如果希望根据属性值进行判断,例如href属性值为https://***.baidu.com/的超链接添加myClass样式,则可以用如下代码:

	

运行效果:
在这里插入图片描述
  以上两种比较简单的属性选择器,jQuery还可以根据属性值的某一部分进行匹配,例如下面代码选中的href属性值以http://开头的所有超链接。

	

运行效果:
在这里插入图片描述
  既然可以根据属性值的开头来匹配选择,自然也可以根据属性值的结尾$=来匹配选择,如下代码可以选中href属性值以cn/结尾的超链接集合,这种方法通常用于选取网站中的某些资源,例如所有的.jpg图片、所有的.pdf文件等。

	

运行结果:
在这里插入图片描述
  另外,还可以利用*=进行任意匹配,例如下面的代码选中href属性值中包含字符串com的所有超链接,并添加样式:

	

运行效果:
在这里插入图片描述

✨ 包含选择器

  jQuery中还提供了包含选择器,用于选择包含某种特殊标记的元素。

包含选择器说明
E:has(F)选中所有名称为E的标记,并且该标记包含F标记

  同样采用上述例子中的HTML框架,下面的代码表示选中包含超链接的所有li标记:

	

运行效果:
在这里插入图片描述

✨ 位置选择器

  CSS3中还允许用过标记所处的位置来对其进行选择,这里的位置是指元素在DOM中所处的位置。页面中几乎所有的标记都可以运用位置选择器,下面的例子展示了jQuery中位置选择器的使用。

位置选择器说明
:first获取第一个元素
:last获取最后一个元素
:odd匹配所有索引值为奇数的元素,从0 开始计数
:even匹配所有索引值为偶数的元素,从0 开始计数
:eq(n)匹配一个给定索引值的元素
:gt(n)匹配所有大于给定索引值的元素
:lt(n)匹配所有小于给定索引值的元素
:first-child匹配第一个子元素
:last-child匹配最后一个子元素
:only-child如果某个元素是父元素中唯一的子元素,将会被匹配
:nth-child(n)第n个元素
:nth-child(odd/even)所有奇数号或者偶数号的子元素
:nth-child(xn+y)利用公式计算子元素的位置

注意:nth-child()选择器编号是从1开始,而其他选择器从0开始。

原始案例代码:


1.大礼堂

2.清华学堂

3.图书馆

4.紫荆公寓

5.C楼

6.清清地下

原始代码运行效果:
在这里插入图片描述
  如果希望在页面中选择每个div块的第一个p标记,则可以通过:first-child来选择,代码如下:

	

运行效果:
在这里插入图片描述
  如果希望在页面中选择第n个p标记,则可以通过::eq(n-1)来选择,代码如下:

	

运行效果:
在这里插入图片描述

✨ 过滤选择器

  除了CSS3中的一些选择器,jQuery也提供了很多自定义的过滤选择器,用来处理更复杂的选择问题。例如很多时候希望知道用户所勾选的多选项,如果通过属性的值来判断,那么只能获得初始状态下的勾选情况。

过滤选择器说明
:animated选择所有处于动画中的元素
:button选择所有按钮
:checkbox选择所有多选项
:contains(foo)选择所有包含文本foo的元素
:disabled选择页面中被禁用的元素
:enabled选择页面中没有被禁用的元素
:file选择上传文件的元素
:header选择所有标题元素
:hidden选择页面中被隐藏的元素
:image选择图片提交按钮
:input选择表单元素
:not(filter)反向选择
:parent选择所有拥有子元素(包括文本)的元素,空元素被排除
:password选择密码框
:radio选择单选框
:reset选择重置按钮
:selected选择下拉菜单中被选中的项
:submit选择提交按钮
:text选择文本输入框
:visible选择页面中所有可见元素

案例代码:






运行效果:
请添加图片描述
  以上代码中有3个复选框,通过jQuery的过滤器:checked便可以很容易地筛选出用户选中的复选项,并赋予其特殊的CSS样式。

✨ 反向选择器

  上述过滤选择器中的:not(filter)选择器可以尽享反向选择,其中filter参数可以是任意的其它过滤选择器,例如下面的代码表示input标记中所有非radio元素:
    input:not(:radio)

  反向选择器也可以使用链式编写方式,例如:
    $(‘:input:not:(:checkbox):not(:radio)’).addClass(‘myClass’);
  表示所有表单元素中(input、select、textarea或button)非checkbox和非radio的元素,这里需要注意input与:input的区别。

  此外,在:not(filter)中,filter参数必须是过滤选择器,而不能是其它选择器。下面的代码表示的是典型的错误写法:
    $(‘div:not(p:hidden)’);

  正确写法为:
    $(‘div p:not(:hidden)’);

⛳️ 快速投票

相关内容

热门资讯

畅想星际探索的未来 人类能在火星上开辟新家园吗?星际远航的航天器从地球启程,补给站该在哪安营扎寨?人类将以何种方式,开启...
以学风改造推进马克思主义中国化 □王树荫 滕越  ●当时正值抗日战争相持阶段最艰苦的时期,侵华日军对抗日根据地实施残酷“三光”政策,...
黄金“受宠” 钻石“遇冷” □四川日报全媒体记者 罗韬  近日,黄金价格剧烈波动,引发市场投资和交易热潮。而钻石价格则不断回落,...
最新或2023(历届)辽宁高考... 辽宁高考语文用的是全国卷新课标II,这套语文卷子的作文题目是:  阅读下面的材料,根据要求写一篇不少...