轻松学会jQuery选择器的用法

news/2024/5/19 18:36:38/文章来源:https://blog.csdn.net/hh867308122/article/details/127877455

文章目录

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

⛳️ 选择器

在这里插入图片描述
  本篇重点讲解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属性值。

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>追加和移除样式</title><style>.demo{color: #f00;font-size: 30px;}.test{background-color: #ccc;border: 1px solid #00f;border-radius: 10px;}</style><script src="js/jQuery-3.6.1.js"></script></head><body><p class="demo">段落标签</p><button>追加样式</button><button>移除样式</button></body>
</html>

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

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

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

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>追加和移除样式</title><style>.demo{color: #f00;font-size: 30px;}.test{background-color: #ccc;border: 1px solid #00f;border-radius: 10px;}</style><script src="js/jQuery-3.6.1.js"></script></head><body><p class="demo">段落标签</p><button>追加样式</button><button>移除样式</button></body><script>$(function(){//获取添加样式的按钮,并添加点击事件$('button:first').click(function(){$('p').addClass('test');});//获取添加样式的按钮,并添加点击事件$('button:last').click(function(){$('p').removeClass('demo');});});</script>
</html>

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

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

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>切换样式</title><script src="js/jQuery-3.6.1.js"></script><style>.demo{color: #f00;font-size: 36px;background-color: #ccc;}</style></head><body><p>段落标签</p><button>切换样式</button></body><script>$(function(){$('button').click(function(){$('p').toggleClass('demo');});});</script>
</html>

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

案例原始代码:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><script src="js/jQuery-3.6.1.js"></script><style type="text/css">a{text-decoration: none;color: #000;}.myClass{/* 设定某个CSS类别 */background-color: #d0baba;color: #5f0000;text-decoration: underline;}</style></head><body><ul><li><a href="http://www.artech.com">信息列表</a><ul><li><a href="https://***.sina.com.cn/">新浪</a></li><li><a href="https://***.baidu.com/" title="百度">百度</a></li><li><a href="https://***.qq.com/">腾讯</a></li><li><a href="https://***.google.cn/" title="谷歌">谷歌</a></li></ul></li></ul></body>
</html>

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

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

	<script>$(function(){$('a[title]').addClass('myClass');});</script>

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

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

	<script>$(function() {$("a[href='https://***.baidu.com/']").addClass("myClass");});</script>

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

	<script>$(function() {$("a[href^='http://']").addClass("myClass");});</script>

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

	<script>$(function() {$("a[href$='cn/']").addClass("myClass");});</script>

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

	<script>$(function() {$("a[href*='com']").addClass("myClass");});</script>

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

✨ 包含选择器

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

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

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

	<script>$(function() {$("ul li ul li:has(a)").addClass("myClass");});</script>

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

✨ 位置选择器

  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开始。

原始案例代码:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><script src="js/jQuery-3.6.1.js"></script><style>div{font-size: 12px;border:1px solid #003a75;margin: 5px;}p{margin: 0;padding: 4px 10px;}.myClass{/* 设定某个CSS类别 */color: beige;background-color: #003a75;text-decoration: underline;}</style></head><body><div><p>1.大礼堂</p><p>2.清华学堂</p></div><div><p>3.图书馆</p></div><div><p>4.紫荆公寓</p><p>5.C楼</p><p>6.清清地下</p></div></body>
</html>

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

	<script>$(function(){$('p:first-child').addClass('myClass');});</script>

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

	<script>$(function(){$('p:eq(3)').addClass('myClass');});</script>

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

✨ 过滤选择器

  除了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选择页面中所有可见元素

案例代码:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><script src="js/jQuery-3.6.1.js"></script><style type="text/css">form{font-size:12px;margin:0;padding:0;}input .btn{border:1px solid #005079;color: #005079;font-family: Arial, Helvetica, sans-serif;font-size: 12px;}.myClass+label{background-color: #F00;text-decoration: underline;color: #fff;}</style></head><body><form name="myForm"><input type="checkbox" name="sports" id="football"><label for="football">足球</label><br><input type="checkbox" name="sports" id="basketball"><label for="basketball">篮球</label><br><input type="checkbox" name="sports" id="volleyball"><label for="volleyball">排球</label><br><br><input type="button" value="Show Checked" onclick="ShowChecked('sports')" class="btn"></form></body><script>function ShowChecked(oCheckBox){//使用:checked过滤出被用户选中的复选框$('input[name='+oCheckBox+']:checked').addClass('myClass');}</script>
</html>

运行效果:
请添加图片描述
  以上代码中有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)’);

⛳️ 快速投票

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_224096.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Pytorch with fastai】第 6 章 :其他计算机视觉问题

&#x1f50e;大家好&#xff0c;我是Sonhhxg_柒&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f4dd;个人主页&#xff0d;Sonhhxg_柒的博客_CSDN博客 &#x1f4c3; &#x1f381;欢迎各位→点赞…

都说测试行业饱和了,为什么我们公司给初级测试开到了12K?

故事起因&#xff1a; 最近我有个刚毕业的学生问我说&#xff1a;我感觉现在测试行业已经饱和了&#xff0c;也不是说饱和了&#xff0c;是初级的测试根本就没有公司要&#xff0c;哪怕你不要工资也没公司要你&#xff0c;测试刚学出来&#xff0c;没有任何的项目经验和工作经验…

MaxViT: Multi-Axis Vision Transformer

论文&#xff1a;https://arxiv.org/abs/2204.01697 代码地址&#xff1a;https://github.com/google-research/maxvit 在本文中&#xff0c;介绍了一种高效且可扩展的注意力模型&#xff0c;称之为多轴注意力&#xff0c;该模型由两个方面组成&#xff1a;分块的局部注意力和…

笔记本电脑没有声音如何解决

​笔记本电脑没有声音的现象&#xff0c;也是笔记本电脑的常见运用病况之一,遇到这种情况的话,大家是否知道如何处理呢?下面小编来跟大家说说笔记本电脑没有声音解决方法&#xff0c;希望可以帮助到大家。 工具/原料&#xff1a; 系统版本&#xff1a;windows10系统 品牌型…

Allegro 274X格式gerber输出全流程详细介绍

Allegro 274X格式gerber输出全流程详细介绍 下面介绍Allegro gerber输出的全流程介绍 首先把光绘设置好 设置光钻孔精度 会出现对话框,勾选Enhanced Excellon format,点击close 输出钻孔文件,选择Auto Tool select,点击Drill 输出椭圆孔文件,默认设置,然后点击rout…

Android App开发之利用Glide实现图片的三级缓存Cache讲解及实战(附源码 超详细必看 简单易懂)

需要图片集和源码请点赞关注收藏后评论区留言~~~ 一、利用Glide实现图片的三级缓存 图片加载框架之所以高效&#xff0c;是因为它不但封装了访问网络的步骤&#xff0c;而且引入了三级缓存的机制。具体来说&#xff0c;是先到内存中查找图片&#xff0c;找到了就直接显示内存图…

二级导航栏

简介&#xff1a;本文通过HTML与CSS相集合的方式&#xff0c;来实现二级导航菜单。 HTML构建骨架 <body><ul class"nav1"><li>水果<ul class"nav2"><li>苹果</li><li>香梨</li><li>火龙果</li…

windows常见的命令操作大全

目录 一、目录文件操作 cd命令 dir命令 md命令 rd命令 move命令 copy命令 del命令 二、文本相关操作 type命令 >命令 findstr命令 |命令 三、网络相关操作 小建议&#xff1a;跟着文章亲手敲一遍是避免忘记的有效方法 一、目录文件操作 cd命令 功能&#xf…

JavaScript流程控制-循环(循环(for 循环,双重 for 循环,while 循环,do while 循环,continue break))

目录 JavaScript流程控制-循环 循环 for 循环 执行过程&#xff1a; 断点调试&#xff1a; 案例一&#xff1a;求1-100之间所有整数的累加和 案例二&#xff1a;求1-100之间所有数的平均值 案例三&#xff1a;求1-100之间所有偶数和奇数的和 案例四&#xff1a;求1-10…

HashMap的面试题

目录 1、底层数据结构 1.7和1.8有何不同 2、为什么用红黑树&#xff0c;为何不一上来就树化&#xff0c;树化阈值为何是8&#xff0c;何时会树化&#xff0c;何时会退化为链表 3、索引如何计算&#xff1f;hashCode都有了&#xff0c;为何还要提供hash()方法&#xff1f;数组…

ArcGIS计算地形湿度指数

TWI是区域地形对径流流向和蓄积影响的物理指标&#xff0c;有助于识别降雨径流模式、潜在土壤含水量增加区域和积水区域。 计算方法&#xff1a;TWI是通过细尺度地形与上梯度对地表面积的贡献相互作用&#xff0c;根据以下关系得到的(Beven et al.,1979) [1] : TWI ln [CA/…

用专业团队管理软件工具轻松“拿捏”年轻运营团队

本文旨在抛砖引玉&#xff0c;欢迎大家拍砖讨论&#xff0c;通过一款时下流行的专业团队管理软件飞项做案例&#xff0c;一起探讨和交流团队管理专业工具软件和一些对应的方法论。 说到国内这几年流行起来的团队管理工具软件&#xff0c;我们先看看互联网这几年的发展。这几年&…

京东面试题:ElasticSearch 深度分页解决方案

前言 Elasticsearch 是一个实时的分布式搜索与分析引擎&#xff0c;在使用过程中&#xff0c;有一些典型的使用场景&#xff0c;比如分页、遍历等。 在使用关系型数据库中&#xff0c;我们被告知要注意甚至被明确禁止使用深度分页&#xff0c;同理&#xff0c;在 Elasticsearc…

【Python实战】听书就用它了:海量资源随便听,内含几w书源,绝对精品哦~(好消息好消息)

前言 有温度 有深度 有广度 就等你来关注哦~ 所有文章完整的素材源码都在&#x1f447;&#x1f447; 粉丝白嫖源码福利&#xff0c;请移步至CSDN社区或文末公众hao即可免费。 哈喽&#xff01;我是栗子同学&#xff0c;继续更新——今天聊一聊“西马拉雅”。&#xff08;谐音…

特征选择-sklearn

sklearn特征选择:移除低方差特征&#xff1a;单变量特征选择递归特征消除基于模型的SelectFromModel顺序特征选择特征选择作为pipline的一部分sklearn.feature_selection模块中的类可用于样本集的特征选择/降维&#xff0c;以提高估计器的准确性得分或提高其在非常高维的数据集…

BL200OPC UA分布式IO系统接线方式

BL200OPC UA 数据点 Node Id OPC UA 的 Node Id 默认是 NS1&#xff1b;SI/O 数据点的 Modbus 映射地址(如首个 DO 模 块第一路 DO&#xff1a;NS1&#xff1b;S1000)&#xff0c;具体 Modbus 映射地址参考 5.1.4Modbus 寄存器映射&#xff0c; 如果是自定义的 OPC UA 模型 Nod…

(02)Cartographer源码无死角解析-(19) SensorBridge→雷达点云数据预处理(函数重载)

本人讲解关于slam一系列文章汇总链接:史上最全slam从零开始&#xff0c;针对于本栏目讲解(02)Cartographer源码无死角解析-链接如下: (02)Cartographer源码无死角解析- (00)目录_最新无死角讲解&#xff1a;https://blog.csdn.net/weixin_43013761/article/details/127350885 …

3.35 OrCAD中怎么产生Cadence Allegro的第一方网表?OrCAD软件输出Cadence Allegro第一方网表报错时应该怎么处理?

笔者电子信息专业硕士毕业&#xff0c;获得过多次电子设计大赛、大学生智能车、数学建模国奖&#xff0c;现就职于南京某半导体芯片公司&#xff0c;从事硬件研发&#xff0c;电路设计研究。对于学电子的小伙伴&#xff0c;深知入门的不易&#xff0c;特开次博客交流分享经验&a…

cpu与指令集

讨论一下 作为一个java程序员&#xff0c;我们都知道&#xff0c;当我们写完代码&#xff0c;java文件会被编译为class文件&#xff0c;然后交给jvm去执行&#xff0c;那么这个执行过程是啥样的呢&#xff1f;&#xff1f; 一般我们得到的解答都是&#xff0c;class代码会被解…

2、HTML——标题分组、居中、引用标签、水平线标签下划线标签、删除标签、<font>标签、图像标签

目录 一、基本标签 1、标题分组&#xff1a;hgroup 2、居中&#xff1a;center 3、引用标签 3.1 块&#xff08;长&#xff09;引用标签&#xff1a;blockquote 3.2 短引用标签&#xff1a;q 4、水平线标签&#xff1a;hr 5、下划线标签&#xff1a;ins 6、删除标…