【jQuery】 jQuery基础及选择器介绍(基本选择器 层次选择器 属性选择器 过滤选择器)

news2025/2/23 1:50:36

文章目录

  • jQuery基础
    • 1. 优势
    • 2. 版本
    • 3. 基本语法
    • 4. 选择器
      • 基本选择器
      • 层次选择器
      • 属性选择器
      • 过滤选择器
        • 基本过滤选择器
        • 可见性过滤选择器
      • 注意事项

jQuery基础

jQuery 是一个功能强大且易于使用的 JavaScript 库,它极大地简化了前端开发的工作。无论是 DOM 操作、事件处理还是 Ajax 交互,jQuery 都能提供简洁高效的解决方案。尽管近年来随着 ES6+ 以及框架如 React、Vue 和 Angular 的兴起,jQuery 的使用频率有所下降,但对于许多项目来说,尤其是那些不需要复杂状态管理和虚拟 DOM 更新的项目,jQuery 仍然是一个非常实用的选择。

设计思想:write less, do more

  • jQuery 官网
  • jQuery 中文 API 手册

1. 优势

通过一个简单的例子来对比原生 JavaScript 和使用 jQuery 的不同之处

需求说明:
当用户点击页面中的按钮时,将一个文本框中的文本变为大写,并且改变背景颜色。
<!-- 使用原生 JavaScript -->
<style>
    .uppercase {background-color: yellow;}
</style>
<body>
    <input type="text" id="myInput" value="hello world">
    <button id="convert">转换为大写</button>

    <script>
        document.getElementById('convert').addEventListener('click', function() {
            var inputElement = document.getElementById('myInput');
            inputElement.value = inputElement.value.toUpperCase();
            inputElement.classList.add('uppercase');
        });
    </script>
</body>
<!-- 使用原生 jQuery -->
<style>
    .uppercase {background-color: yellow;}
</style>
<script src="https://code.jquery.com/jquery-3.x.x.min.js"></script>
<body>
    <input type="text" id="myInput" value="hello world">
    <button id="convert">转换为大写</button>

    <script>
        $(document).ready(function() {
            $("#convert").click(function() {
                var inputElement = $("#myInput");
                inputElement.val(inputElement.val().toUpperCase());
                inputElement.addClass('uppercase');
            });
        });
    </script>
</body>

代码量

  • 原生 JavaScript:需要导入 DOM 元素,添加事件监听器,并且手动改变文本和样式。
  • jQuery:使用链式调用和更简洁的选择器,使得代码更短更清晰。

语法简洁性

  • 原生 JavaScript:语法相对繁琐,需要显式地获取元素引用,绑定事件处理函数。
  • jQuery:语法更为简洁,使用 $ 符号和链式调用可以让代码更加紧凑。

易读性和可维护性

  • 原生 JavaScript:虽然现代 JavaScript 已经非常强大,但是对于一些简单的DOM操作,代码仍然显得有些冗长。
  • jQuery:代码更容易阅读,维护起来也更方便

JavaScript 转 jQuery $(js对象);

jQuery 转 JavaScript $(选择器).get(0); / $(选择器)[0]

2. 版本

jQuery 库分开发版和发布版

名称大小说明
jquery-3.版本号.js(开发版)约286KB完整无压缩版本,主要用于测试、学习和开发
jquery-3.版本号.min.js(发布版)约94.8KB经过工具压缩或经过服务器开启Gzip压缩,主要应用于发布的产品和项目
<script src="js/jquery-3.3.1.min.js" type="text/javascript"></script>

3. 基本语法

// 为页面加载事件绑定方法
$(document).ready(function() {
    alert("我欲奔赴沙场征战jQuery,势必攻克之!");
});

$(document).ready()window.onload 类似,但也有区别

window.onload$(document).ready()
执行时机必须等待网页中所有的内容加载完毕后(包括图片、flash、视频等)才能执行网页中所有 DOM 文档结构绘制完毕后即刻执行,可能与 DOM 元素关联的内容(图片、flash、视频等)并没有加载完
编写个数同一页面不能同时编写多个同一页面能同时编写多个
简化写法$(function(){
// 执行代码
});

4. 选择器

jQuery 语法是为 HTML 元素的选取编制的,可以对元素执行某些操作

基础语法是:$(selector).action()

基本选择器

标签选择器、类选择器、ID选择器、并集选择器和全局选择器

名称语法构成描述示例
标签选择器element根据给定的标签名匹配元素$(“h2”)选取所有h2元素
类选择器.class根据给定的class匹配元素$(“.title”)选取所有class为title的元素
ID选择器#id根据给定的id匹配元素$(“#title”)选取id为title的元素
并集选择器selector1,selector2,…,selectorN将每一个选择器匹配的元素合并后一起返回$(“div,p,.title” )选取所有div、p和拥有class为title的元素
全局选择器*匹配所有元素$(“*”)选取所有元素

标签选择器根据给定的标签名匹配元素

$(document).ready(function(){
    $("dt").click(function(){
        $("dd").css("display","block"); // 设置<dd>标签中的内容显示出来
    });
    $("h1").css("color","blue"); // 设置<h1>标签中的字体颜色为蓝色
})

类选择器根据给定的class匹配元素

$(".price").css({"background":"#efefef","padding":"5px"});
// 设置class为price元素的背景颜色和内边距

ID选择器根据给定的 id 匹配元素

$("#author").css("color","#083499");
// 设置 id 为 author 的元素的字体颜色

并集选择器用来合并元素集合

$(".intro,dt,dd").css("color","#ff0000");
// 改变 class 为 intro,所有dt,dd颜色为纯红色

全局选择器可以获取所有元素

$("*").css("font-weight","bold");
// 设置所有元素的字体加粗显示

层次选择器

通过 DOM 元素之间的层次关系来获取元素

名称语法构成描述示例
后代选择器ancestor descendant选取ancestor元素里的所有descendant(后代)元素$(“#menu span”)选取#menu下的<span>元素
子选择器parent>child选取parent元素下的child(子)元素$(“#menu>span”)选取#menu的子元素<span>
相邻元素选择器prev+next选取紧邻prev元素之后的next元素$(“h2+dl”)选取紧邻<h2>元素之后的同辈元素<dl>
同辈元素选择器prev~sibings选取prev元素之后的所有siblings元素$(“h2~dl”)选取<h2>元素之后所有的同辈元素<dl>

后代选择器用来获取元素的后代元素

$(".textRight p").css("color","red");
// 设置class为textRight元素中的所有<p>标签的字体全部为红色

子选择器用来获取元素的子元素

$(".textRight>p").css("color","red");
// 设置class为textRight元素中的子元素<p>标签的字体全部为红色

相邻选择器用来选取紧邻目标元素的下一个元素

 $("h1+p").css("text-decoration","underline"); 

同辈选择器用来选取目标元素之后的所有同辈元素

$("h1~p").css("text-decoration","underline");

属性选择器

通过 HTML 元素的属性来选择元素

语法构成描述示例
[attribute^=value]选取给定属性是以某些特定值开始的元素$(“[href^=‘en’]”)选取href属性值以en开头的元素
[attribute$=value]选取给定属性是以某些特定值结尾的元素 ( " [ h r e f ("[href ("[href=‘.jpg’]")选取href属性值以.jpg结尾的元素
[attribute*=value]选取给定属性是以包含某些值的元素$(“[href*=‘txt’]”)选取href属性值中含有txt的元素

根据属性名获取元素

​ 1)根据是否包含某属性来选取元素

// a 标签带有 class 属性
$("#news a[class]").css("background","#c9cbcb");

根据属性值获取元素

​ 1)根据属性的值来选取元素

// class 属性值为 hot
$("#news a[class='hot']").css("background","#c9cbcb");

​ 2)指定选取不等于属性是某个特定值的元素

$("#news a[class!='hot']").css("background","#c9cbcb");

根据属性值包含特定的值获取元素

​ 1)指定属性值以指定值开头的元素

// a 标签 href 属性值以 www 开头
$("#news a[href^='www']").css("background","#c9cbcb");

​ 2)指定属性值以指定值结尾的元素

// a 标签 href 属性值以 html 结尾
$("#news a[href$='html']").css("background","#c9cbcb");

​ 3)指定属性值包含指定值的元素

// a 标签 href 属性值包含 k2 的元素
$("#news a[href*='k2']").css("background","#c9cbcb");

过滤选择器

通过特定的过滤规则来筛选出所需的元素

主要分类

​ 基本过滤选择器

​ 可见性过滤选择器

​ 表单对象过滤选择器

​ 内容过滤选择器、子元素过滤选择器……

基本过滤选择器
语法描述示例
:first选取第一个元素$(“li:first”)选取所有<li>元素中的第一个<li>元素
:last选取最后一个元素$(“li:last”)选取所有<li>元素中的最后一个<li>元素
:not(selector)选取去除所有与给定选择器匹配的元素$(“li:not(.three)”)选取class不是three的元素
:even选取索引是偶数的所有元素$(“li:even”)选取索引是偶数的所有<li>元素
:odd选取索引是奇数的所有元素$(“li:odd”)选取索引是奇数的所有<li>元素
:eq(index)选取索引等于index的元素$(“li:eq(1)”)选取索引等于1的<li>元素
:gt(index)选取索引大于index的元素$(“li:gt(1)”)选取索引大于1的<li>元素
:lt(index)选取索引小于index的元素$(“li:gt(1)”)选取索引小于1的<li>元素
:header选取所有标题元素 如h1~h6$(“:header”)选取网页中所有标题元素
:focus选取当前获取焦点的元素$(“:focus”)选取当前获取焦点的元素
:animated选择所有动画$(“:animated”)选取当前所有动画元素

案例:制作仿奥列表页面

<div class="contain">
    <h2>祝福冬奥</h2>
    <ul>
        <li> 贝克汉姆:衷心希望北京能够申办成功!</li>
        <li> 姚明:北京申冬奥是个非常棒的机会!加油!</li>
        <li> 张虹:北京办冬奥,大家的热情定超乎想象! </li>
        <li> 肖恩怀特:我爱北京,支持北京申办冬奥会!</li>
        <li> 赵宏博:北京申办冬奥会是再合适不过了!</li>
        <li> 你喜欢哪些冬季运动项目?(点击进入调查页)</li>
    </ul>
</div>

在这里插入图片描述

$(".contain:header").css({"background":"#2a65ba","color":"#ffffff"});
$(".contain li:first").css({"font-size":"16px","color":"#e90202"});
$(".contain li:last").css("border","none");
$(".contain li:even").css("background","#f0f0f0");
$(".contain li:odd").css("background","#cccccc");

在这里插入图片描述

$(".contain:header").css({"background":"#2a65ba","color":"#ffffff"});
$(".contain li:first").css({"font-size":"16px","color":"#e90202"});
$(".contain li:last").css("border","none");
$(".contain li:lt(2)").css({"color":"#708b02"});
$(".contain li:gt(3)").css({"color":"#b66302"});

在这里插入图片描述

可见性过滤选择器

通过元素显示状态来选取元素

语法描述示例
:visible选取所有可见的元素$(“:visible”)选取所有可见的元素
:hidden选取所有隐藏的元素$(“:hidden”)选取所有隐藏的元素
$("p:hidden").show();
$("p:visible").hide();

注意事项

1)特殊符号的转义

<div id="id#a">aa</div>
<div id="id[2]">cc</div>
$("#id#a");   =====>  $("#id\\#a");
$("#id[2]");  =====>  $("#id\\[2\\]");

2)选择器的书写规范很严格,多一个空格或少一个空格,都会影响选择器的效果

// 带空格的jQuery选择器 选取class为“test”的元素内部的隐藏元素
var $t_a = $(".test :hidden"); 

// 不带空格的jQuery选择器 选取隐藏的class为“test”的元素
var $t_b = $(".test:hidden");  

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

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

相关文章

简单概述Ton链开发路径

区块链开发领域发展迅速&#xff0c;各种平台为开发人员提供不同的生态系统。其中一个更有趣且越来越相关的区块链是TON&#xff08;开放网络&#xff09;区块链。TON 区块链最初由 Telegram 构思&#xff0c;旨在提供快速、安全且可扩展的去中心化应用程序 (dApp)。凭借其独特…

加盟模式如何运营?有哪些好的技巧和方法!

对于很多品牌方来说&#xff0c;生意发展到一定程度&#xff0c;就考虑通过加盟的方式扩大市场份额。 本篇文章&#xff0c;将从3个角度来为大家分享&#xff0c;运营加盟模式的好方法和技巧&#xff01; 一、加盟前的准备 1、明确品牌定位与核心竞争力 确定你的企业在市场…

暖水毯/取暖毯语音识别控制芯片IC方案

暖水毯、取暖毯作为现代家居生活的温暖伴侣&#xff0c;其智能化升级已是大势所趋。在暖水毯与取暖毯中融入语音识别控制芯片IC方案&#xff0c;为用户的冬日取暖体验带来了革命性的变革。 一、暖水毯/取暖毯增加语音识别控制芯片方案&#xff0c;让产品能通过对话来调节&…

【笔记】vue课堂小作业之书籍购物车列表的增删改查小记

&#xff08;一&#xff09;reduce作迭代器 1. reduce 函数的基本用法 array.reduce((accumulator, currentValue) > { ... }, initialValue); accumulator: 累积器&#xff0c;表示当前累积的值&#xff0c;通常在第一次时为 initialValue。&#xff08;总数sum&#x…

OpenCV高级图形用户界面(8)在指定的窗口中显示一幅图像函数imshow()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 在指定的窗口中显示一幅图像。 函数 imshow 在指定的窗口中显示一幅图像。如果窗口是以 cv::WINDOW_AUTOSIZE 标志创建的&#xff0c;图像将以原…

遵循国药准字,确保益安宁丸疗效与安全

益安宁丸真品辨别唯一标准 益安宁丸为同溢堂药业有限公司所独家生产的一款中成药&#xff0c;在内地市场和港澳地区均有上市。 益安宁丸真品的唯一标准&#xff1a;无论港版还是内地版&#xff0c;包装盒必然有国药准字Z20063087标识&#xff0c;但凡没有国药准字标识的必为假…

性价比最高的开放式耳机,五大热门品牌开放式耳机

在当今快节奏的生活环境中&#xff0c;开放式耳机以其独特的开放式设计&#xff0c;既能让用户享受高质量的音乐&#xff0c;又能保持对外界环境的感知&#xff0c;逐渐成为市场上的新宠。然而&#xff0c;面对众多品牌和型号&#xff0c;如何选择一款性价比高的开放式耳机成为…

IDEA 编译报错 “java: 常量字符串过长” 的解决办法

目录 一、问题描述二、问题原因2.1 理论角度2.2 源码角度 三、解决方案解决方案①&#xff1a;StringBuilder 拼接解决方案②&#xff1a;读取文件内容 四、方案验证 在线文本换行工具&#xff1a; https://lzltool.cn/Toolkit/WrapWordsInText 一、问题描述 今天在开发过程中…

JavaScript全面指南(五)

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;JavaScript篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来JavaScript篇专栏内容:JavaScript全面指南 目录 81、ES6 class关键字原理跟function什么区别 82、如何检…

Vue(3) 组件

文章目录 对组件的理解单文件组件非单文件组件基本使用几个注意点组件的嵌套VueComponent构造函数一个重要的内置关系 组件的自定义事件全局事件总线安装全局事件总线使用事件总线解绑事件消息订阅与发布简介使用步骤范例 $nextTick插槽1.默认插槽2.具名插槽作用域插槽 对组件的…

某市驾驶培训监管服务平台 GreatSQL 数据库适配之旅

某市驾驶培训监管服务平台 GreatSQL 数据库适配之旅 一、项目背景 某市驾培系统主要为社会公众提供驾培单位查询和学车报名&#xff0c;为相关合作单位提供某市驾培监管、某市驾培考核等功能。业务信息教练车培训过程视频信息、包括培训机构基本信息、教练员基本信息和学员个…

从零创建苹果App应用,不知道怎么申请证书的可以先去看我的上一篇文章

用大家自己的开发者账户&#xff0c;登录进入App Store Connect ,注册自己的应用 进入之后&#xff0c;点击增加 填写相关的信息 一切顺利的话&#xff0c;就可以来到这个页面

【Java】画心形图形

开始看到的是这个爱心图形&#xff0c;挺好看的&#xff08;感谢这些前端巨佬&#xff09;&#xff1a; HTML流光爱心_爱心代码html-CSDN博客 本来想着自己看下这个源代码能不能实现&#xff0c;看了下源代码其实非常复杂。 在看代码的过程中发现&#xff0c;源代码里边给出…

5: Euclid‘s Game

题意分析&#xff1a;给定数列&#xff08;A,B&#xff09;&#xff08;A>B&#xff09;&#xff0c;任取两数之差&#xff0c;若不含于数列&#xff08;A,B&#xff09;则添加得&#xff08;A.B,C&#xff09;重复任取两数之差且不重复得&#xff08;A,B,C,...&#xff09;…

【汇编语言】寄存器(内存访问)(二)—— DS和[address]

前言 &#x1f4cc; 汇编语言是很多相关课程&#xff08;如数据结构、操作系统、微机原理&#xff09;的重要基础。但仅仅从课程的角度出发就太片面了&#xff0c;其实学习汇编语言可以深入理解计算机底层工作原理&#xff0c;提升代码效率&#xff0c;尤其在嵌入式系统和性能优…

微信外卖小程序(lw+演示+源码+运行)

摘 要 社会的发展和科学技术的进步&#xff0c;互联网技术越来越受欢迎。手机也逐渐受到广大人民群众的喜爱&#xff0c;也逐渐进入了每个用户的使用。手机具有便利性&#xff0c;速度快&#xff0c;效率高&#xff0c;成本低等优点。 因此&#xff0c;构建符合自己要求的操作…

【优选算法】(第四十一篇)

目录 被围绕的区域&#xff08;medium&#xff09; 题目解析 讲解算法原理 编写代码 迷宫中离⼊⼝最近的出⼝&#xff08;medium&#xff09; 题目解析 讲解算法原理 编写代码 被围绕的区域&#xff08;medium&#xff09; 题目解析 1.题目链接&#xff1a;. - 力扣&a…

DevExpress WPF中文教程:Data Grid(数据网格)实现细节一览

DevExpress WPF拥有120个控件和库&#xff0c;将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序&#xff0c;这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件…

LLM - 配置 ModelScope SWIFT 测试 Qwen2-VL 视频微调(LoRA) 教程(3)

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/142882496 免责声明&#xff1a;本文来源于个人知识与公开资料&#xff0c;仅用于学术交流&#xff0c;欢迎讨论&#xff0c;不支持转载。 SWIFT …

Java项目:155 ssm高校学生管理系统(含论文+说明文档)

作者主页&#xff1a;源码空间codegym 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 高校学生管理系统有管理员&#xff0c;教师&#xff0c;学生三个角色。 ​ 有个人中心&#xff0c;教师管理&#xff0c;学生管理&#xff0…