jQuery常用的 四大基本选择器

news2024/11/25 11:06:19

文章目录

  • 简介:
  • 基础选择器
    • 1. 通过 ID 选择器获取元素
    • 2. 通过 class 选择器获取元素
    • 3. 通过标签名选择器获取元素
  • 层级选择器
    • 1. 通过直接子元素选取
    • 2. 通过后代元素选取
  • 属性选择器
    • 1.[attribute=value]属性选择器
    • 2.[attribute!=value] 属性选择器
    • 3.[attribute*=value]属性选择器
  • 过滤选择器
    • (1):first,:last 过滤性选择器:eg:$("li:first") $("li:last")
    • (2):eq(index)过滤选择器
    • (3):contains(text)过滤选择器
    • (4):has(selector)过滤选择器
    • (5):hidden过滤选择器
    • (6):visible过滤选择器

简介:

jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(框架)于2006年1月由John
Resig发布。jQuery设计的宗旨是“write Less,Do
More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。

基础选择器

基础选择器是 JavaScript 中最常用的选择器,主要用于选择与指定规则相匹配的单个元素。以下是常见的一些基础选择器:

名称语法构成描述返回值
标签选择器element元素选择器,根据元素名匹配所有元素元素集合
类选择器.class类选择器,根据类名匹配元素元素集合
id 选择器#idid选择器,根据id值匹配一个元素单个元素
并集选择器select1,select2…selectN同时获取多个元素元素集合

1. 通过 ID 选择器获取元素

通过 ID 选择器可以仅通过指定元素的 ID 属性来选择该元素,使用方法: document.getElementById(‘id名称’)。

示例代码:

// 获取id为demo的div元素
var demoDiv = document.getElementById('demo');

2. 通过 class 选择器获取元素

通过 class 选择器可以选中具有与指定 class 属性名称相同的所有元素,使用方法: document.getElementsByClassName(‘类名’)。

示例代码:

// 获取class为demo的所有元素
var demoEles = document.getElementsByClassName('demo');

3. 通过标签名选择器获取元素

通过标签名选择器可以选中指定名称的所有元素,使用方法: document.getElementsByTagName(‘标签名’)。

示例代码:

// 获取所有p元素
var pEles = document.getElementsByTagName('p');

层级选择器

层级选择器是用于选择 HTML 元素中的某个层级元素的选择器。以下是常见的一些层级选择器:

名称语法构成描述返回值
后代选择器selectorselector1根据祖先元素(selector)匹配所有的后代元素 ( selector1)元素集合
子选择器parent>child根据父元素匹配所有的子元素元素集合
相邻元素选 择器prev + next匹配prev元素近邻的兄弟元素元素集合
同辈元素选 择器prev ~siblings匹配prev元素后代的所有兄弟元素元素集合

1. 通过直接子元素选取

选择一个元素的直接子元素,使用方法: document.querySelector(‘父元素 > 直接子元素’)。

示例代码:

// 选择id为container的直接子元素中的第一个div元素
var firstDiv = document.querySelector('#container > div:nth-child(1)');

2. 通过后代元素选取

选择一个元素的后代元素,使用方法: document.querySelector(‘祖先元素 后代元素’)。

示例代码:

// 选择class为demo的div元素中的第一个p元素
var firstPEle = document.querySelector('.demo p:nth-child(1)');

属性选择器

该选择器的功能是获取与属性名和属性值完全相同的全部元素,其中 []是专用于属性选择器的括号符。

语法返回值示例
[attribute]元素集合$(“[href]”)选取含有href属性的元素
[attribute=value]元素集合$(“[href=‘#’]”)选取href属性值为“#”的元素
[attribute!=value]元素集合$(“[href!=‘#’]”)选取href属性值不为“#”的元素
[attribute^=value]元素集合$(“[href^=‘en’]”)选取href属性值以en开头的元素
[attribute$=value]元素集合 ( " [ h r e f ("[href ("[href=‘.jpg’]")选取href属性值以.jpg结尾的元素
[attribute*=value]元素集合$(“[href*=‘txt’]”)选取href属性值中含有txt的元素

1.[attribute=value]属性选择器

<body>
    <h3>改变"title"属性值为"蔬菜"的背景色</h3>
    <ul>
        <li title="蔬菜">茄子</li>
        <li title="水果">香蕉</li>
        <li title="蔬菜">芹菜</li>
        <li title="水果">苹果</li>
        <li title="水果">西瓜</li>
    </ul>
    
    <script type="text/javascript">
        $("li[title='蔬菜']").css("background-color", "green");
    </script>
</body>

2.[attribute!=value] 属性选择器

<body>
    <h3>改变"title"属性值不为"蔬菜"的背景色</h3>
    <ul>
        <li title="蔬菜">茄子</li>
        <li title="水果">香蕉</li>
        <li title="蔬菜">芹菜</li>
        <li title="水果">苹果</li>
        <li title="水果">西瓜</li>
    </ul>
    
    <script type="text/javascript">
        $("li[title!='蔬菜']").css("background-color", "green");
    </script>
</body>

3.[attribute*=value]属性选择器

该选择器可以获取属性值中包含制定内容的全部元素,其中[]是专用于属性选择器的括号符。

如下选择的有”香蕉“,”小西红柿“和”西瓜“。

<body>
    <h3>改变"title"属性值包含"果"的背景色</h3>
    <ul>
        <li title="蔬菜">茄子</li>
        <li title="水果">香蕉</li>
        <li title="蔬菜">芹菜</li>
        <li title="人参果">小西红柿</li>
        <li title="水果">西瓜</li>
    </ul>
    
    <script type="text/javascript">
        $("li[title*='果']").css("background-color", "green");
    </script>
</body>

过滤选择器

过滤性选择器,该类型的选择器是根据某过滤规则进行的元素的匹配,书写时以“:”号开头,通常用于查找集合元素中的某一位置的单个元素。

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

(1):first,:last 过滤性选择器:eg:$(“li:first”) $(“li:last”)

first选择第一个li标签,last选择最后一个li标签。

<body>
    <div>改变最后一行"苹果"背景颜色:</div>
    <ol>
        <li>葡萄</li>
        <li>香蕉</li>
        <li>橘子</li>
        <li>西瓜</li>
        <li>苹果</li>
    </ol>
    
    <script type="text/javascript">
        $("li:last").css("background-color", "red");
    </script>
</body>

(2):eq(index)过滤选择器

如果想从一组标签元素数组中,灵活选择任意一个标签元素,我们可以使用:eq(index),其中参数index表示索引号,它从0开始,如果index的值为3,表示选择的是第4个元素。如下选择的是“葡萄”。
复制代码

   <body>
        <div>改变中间行"葡萄"背景颜色:</div>
        <ol>
        <li>橘子</li>
        <li>香蕉</li>
        <li>葡萄</li>
        <li>苹果</li>
        <li>西瓜</li>
        </ol>
        
        <script type="text/javascript">
            $("li:eq(2)").css("background-color", "#60F");
        </script>
    </body>

(3):contains(text)过滤选择器

与上面介绍的:eq(index)选择器按索引查找元素相比,有时候我们可能希望按照文本内容来查找多个元素,使用:contains(text)选择器更好,它的功能是选择包含指定文字字符串的全部元素,它通常与其他元素结合使用,获取包含”text“字符串内容的全部元素。如下选择的是1,3,5.

  <body>
        <div>改变包含"jQuery"字符内容的背景色:</div>
        <ol>
            <li>强大的"jQuery"</li>
            <li>"javascript"也很实用</li>
            <li>"jQuery"前端必学</li>
            <li>"java"是一种开发语言</li>
            <li>前端利器——"jQuery"</li>
        </ol>
        
        <script type="text/javascript">
            $("li:contains('jQuery')").css("background", "green");
        </script>
    </body>

(4):has(selector)过滤选择器

包含的元素名称。如下选择的是2,4.

<body>
    <div>改变包含"label"元素的背景色:</div>
    <ol>
        <li><p>我是P先生</p></li>
        <li><label>L妹纸就是我</label></li>
        <li><p>我也是P先生</p></li>
        <li><label>我也是L妹纸哦</label></li>
        <li><p>P先生就是我哦</p></li>
    </ol>
    
     <script type="text/javascript">
        $("li:has('label')").css("background-color", "blue");
    </script>
</body>

(5):hidden过滤选择器

hidden过滤选择器的功能是获取全部不可见的元素,这些不可见的元素中包括type属性值为hidden的元素。

<body>
    <h3>显示隐藏元素的内容</h3>
    <input id="hidstr" type="hidden" value="我已隐藏起来"/>
    <div></div>
    
    <script type="text/javascript">
    var $strHTML = $("input:hidden").val();
    $("div").html($strHTML);
</script>
</body>

(6):visible过滤选择器

与:hidden选择器正好相反,也就是只要不将元素的display属性值设置为none,那么都可以通过该选择器获取。如下获取的是香蕉,葡萄和苹果。

<body>
    <h3>修改可见“水果”的背景色</h3>
    <ul>
        <li style="display:none">橘子</li>
        <li style="display:block">香蕉</li>
        <li style="display:">葡萄</li>
        <li>苹果</li>
        <li style="display:none">西瓜</li>
    </ul>
    
    <script type="text/javascript">
        $("li:visible").css("background-color","blue");
    </script>
</body>

附加 派生选择器:
派生选择器,乍一看名字不知所云,它又名上下文选择器,它是使用文档DOM结构来进行css选择的。DOM结构在此不再赘述了,但为了更加清楚地说明问题,我们这里给出一个DOM树作为参考:
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何在Windows安装Wnmp服务并实现固定地址远程访问

文章目录 前言1.Wnmp下载安装2.Wnmp设置3.安装cpolar内网穿透3.1 注册账号3.2 下载cpolar客户端3.3 登录cpolar web ui管理界面3.4 创建公网地址 4.固定公网地址访问 前言 WNMP是Windows系统下的绿色NginxMysqlPHP环境集成套件包&#xff0c;安装完成后即可得到一个Nginx MyS…

字符串处理-第11届蓝桥杯省赛Python真题精选

[导读]&#xff1a;超平老师的Scratch蓝桥杯真题解读系列在推出之后&#xff0c;受到了广大老师和家长的好评&#xff0c;非常感谢各位的认可和厚爱。作为回馈&#xff0c;超平老师计划推出《Python蓝桥杯真题解析100讲》&#xff0c;这是解读系列的第26讲。 字符串处理&#…

Typescript---webpack和Babel的使用 03

webpack 通常情况下&#xff0c;实际开发中我们都需要使用构建工具对代码进行打包&#xff0c;TS同样也可以结合构建工具一起使用&#xff0c;下边以webpack为例介绍一下如何结合构建工具使用TS。 步骤&#xff1a; 初始化项目 进入项目根目录&#xff0c;执行命令 npm init -…

Dockerfile + harbor详解

Dockerfileharbor私服 一 docker工作流 1. docker管理流程 2. 镜像仓库阿里 (1) 阿里私有仓库 公司内部管理项目涉及到的所有docker镜像&#xff0c;会使用私有仓库的方式&#xff0c;集中管理。 (2) 创建阿里Docker仓库 登录阿里云创建私有仓库 网址&#xff1a;容器镜像服…

希亦、觉飞、小吉三款婴儿洗衣机大比拼!全方位对比测评

由于年龄幼小的婴儿的皮肤都非常的幼嫩&#xff0c;因此婴儿衣物材质的类型大部分都是采用为纯棉&#xff0c;并且婴儿的衣物不能够与大人的衣物一起进行混洗&#xff0c;容易把细菌感染到宝宝的衣物上&#xff0c;因此很多家庭为了保证宝宝衣服的有效清洁&#xff0c;避免交叉…

感恩客户·持续向上-契约锁电子签章

2023年&#xff0c;电子签章成为组织数字化建设中的刚性需求&#xff0c;市场机遇帮助契约锁实现了产品、伙伴、客户、应用场景等全方位的持续发展。 感恩客户和伙伴的支持&#xff0c;让契约锁在2023年不断成长和进步。 感恩客户相伴成长 2023年&#xff0c;契约锁为“政府机关…

IDEA 控制台中文乱码问题解决方法(UTF-8 编码)

设置 IDEA 编码格式 1&#xff1a;打开 IntelliJ IDEA>File>Setting>Editor>File Encodings&#xff0c;将 Global Encoding、Project Encoding、Default encodeing for properties files 这三项都设置成 UTF-8 2&#xff1a;将 vm option 参数改为&#xff1a; -…

os.path.join(a,b)末尾出现\问题

文章目录 问题描述解决 问题描述 config[save_path] dataset/data/output 并且 config[model_name] &#xff08;空字符串&#xff09; os.path.join() 函数在处理路径时会正确处理路径分隔符&#xff0c;并避免出现多余的斜杠。但是&#xff0c;如果 config[‘save_path’]…

Linux进程以及计划任务

一.程序和进程以及线程 内核功用&#xff1a;进程管理、内存管理、文件系统、网络功能、驱动程序、安全功能等 对于所有的操作系统&#xff0c;都有基本的功能 1.程序 保存在硬盘、光盘等介质中的可执行代码和数据&#xff08;硬盘上躺着&#xff09; 静态保存的代码 执行…

MongoDB—SQL到MongoDB映射图表

一、术语和概念 下表显示了各种 SQL 术语和概念 以及相应的 MongoDB 术语和概念。 SQL Terms/Concepts MongoDB Terms/Concepts database database table collection row document or BSON document column field index index table joins $lookup, embedded docu…

ssm基于echarts的基金交易网站的设计与实现论文

摘 要 计算机网络发展到现在已经好几十年了&#xff0c;在理论上面已经有了很丰富的基础&#xff0c;并且在现实生活中也到处都在使用&#xff0c;可以说&#xff0c;经过几十年的发展&#xff0c;互联网技术已经把地域信息的隔阂给消除了&#xff0c;让整个世界都可以即时通话…

C语言中指针变量如何使用

一、指针变量的定义与声明 1.1 定义 指针变量是用来存储另一个变量的内存地址的变量。在C语言中&#xff0c;指针变量的类型是指向某个类型的指针。例如&#xff0c;int *p; 表示一个整型指针变量p。 1.2 声明 指针变量的声明分为两种形式&#xff0c;一种是直接声明&#…

什么是数据同步?为什么它很重要?

您的员工经常在不同的应用程序中查看同一组数据。 营销人员可能会在营销自动化平台中查看潜在客户&#xff0c;销售可能会在 CRM 中查看它们&#xff1b; HR 团队可能会在人力资源信息系统中跟踪员工信息&#xff0c;而 IT 可能会在项目管理系统中跟踪信息&#xff1b;财务团队…

EDI 项目推进流程

EDI 需求确认 交易伙伴发来EDI对接邀请&#xff0c;企业应该如何应对&#xff1f; 首先需要确认EDI需求&#xff0c;通常包括传输协议和报文标准以及传输的业务单据类型。可以向交易伙伴发送以下内容&#xff1a; &#xff08;中文版&#xff09; 与贵司建立EDI连接需要使用…

数据分析求职-面试技巧

之前咱们已经分享了岗位介绍、求职准备思路、简历如何准备&#xff0c;今天咱俩聊一聊面试的技巧~ 1. 面试流程 咱们先聊聊面试的基本流程&#xff1a;简历/笔试筛选->技术初面->技术二面->技术三面->技术交叉面->HR面。 这个过程中有几个点值得重点说说&…

通信基础——带宽

随着信息社会的发展和数字化进程的加速&#xff0c;通信技术已经成为现代社会最为重要的基础设施之一。而在通信技术中&#xff0c;带宽作为一个重要的概念&#xff0c;对于我们理解和应用现代通信技术具有至关重要的意义。本文将以“通信基础——带宽”为主题&#xff0c;对带…

如何正确使用docker搭建靶场--pikachu

在Linux中搭建靶场——pikachu 1.开启docker systemctl start docker 2.查看docker状态 systemctl status docker 3.查看docker存在那些镜像 docker images 4.拉取镜像&#xff0c;这里是以pikachu为例因此需要一个php5的版本 &#xff08;1&#xff09;打开代理&#xff…

Linux Perf 介绍

文章目录 前言 二、安装Perf三、二级命令3.1 perf list3.2 perf record/report3.3 perf stat3.4 perf top 四、使用火焰图进行性能分析4.1 下载火焰图可视化生成器4.2 使用perf采集数据4.3 生成火焰图参考资料 前言 perf是一款Linux性能分析工具&#xff0c;内置在Linux内核的…

用C语言采集游戏平台数据并做行业分析

游戏一直深受90/00后的喜爱&#xff0c;有些人因为对游戏的热爱还专门成立了工作室做游戏赚钱&#xff0c;但是游戏行业赚钱走不好就会被割一波韭菜&#xff0c;那么现在什么游戏挣钱&#xff0c;什么游戏好玩认可度高&#xff1f;带着这样的问题我将利用我毕生所学&#xff0c…

爬取豆瓣电影top250的电影名称(完整代码与解释)

在爬取豆瓣电影top250的电影名称之前&#xff0c;需要在安装两个第三方库requests和bs4&#xff0c;方法是在终端输入&#xff1a; pip install requestspip install bs4 截几张关键性图片&#xff1a; 豆瓣top250电影网页 运行结果 测试html文件标签的各个方法的作用&#xf…