轻松掌握 jQuery 基础

news2024/12/23 17:36:44

文章目录

    • 💖 前言
    • 💖 jQuery简介
    • 💖 jQuery安装及使用
    • 💖 jQuery的$
      • 💞 选择器
      • 💞 功能函数前缀
      • 💞 window.onload
      • 💞 创建DOM元素
    • 💖 投票快捷键

在这里插入图片描述

💖 前言

  随着JavaScript、CSS、DOM、AJAX等技术的不断进步,越来越多的开发者将一个又一个丰富多彩的功能进行封装,供更多的人在遇到类似情况时使用,jQuery就是这类封装工具中优秀的一员。

  本篇思维导图如下:
在这里插入图片描述

💖 jQuery简介

  简单来说,jQuery是一个优秀的JavaScript框架,它能帮助用户更方便的处理HTML文件、事件、动画效果、AJAX交互等。它的出现极大程度地改变了开发者使用JavaScript的习惯。

  jQuery由美国人John Resig于2006年创建,它是对JavaScript对象和函数的封装,它的设计思想是“write less,do more.”。在你学习jQuery之前,你需要有HTML、CSS和JavaScript的学习基础,因为jQuery是JavaScript的函数库。

jQuery 库包含以下功能:

  • HTML 元素的选取和操作
  • 控制页面的CSS样式
  • HTML 事件函数
  • JavaScript 特效和动画
  • HTML DOM 遍历和修改
  • 与AJAX技术完美结合
  • 扩展新的jQuery插件
  • Utilities

  提示: 除此之外,jQuery 还提供了大量的插件。

jQuery的优势:

  • 体积小,压缩后只有100KB左右
  • 强大的选择器
  • 出色的DOM封装
  • 可靠的事件处理机制
  • 出色的浏览器兼容性
  • 使用隐式迭代简化编程
  • 丰富的插件支持

💖 jQuery安装及使用

jQuery的官网会提供最新的jQuery框架,有两个版本的 jQuery 可供下载:

  • Production version - 用于实际的网站中,已被精简和压缩。
  • Development version - 用于测试和开发(未压缩,是可读的代码)

下载 jQuery 库: jQuery 下载

在这里插入图片描述

  下载完成后不需要任何安装过程,直接将下载的.js文件用script标记导入用户自己的页面代码中即可,代码如下所示:

<script scr="jquery-3.6.1.min.js"></script>

  导入jQuery框架后,便可以按照它的语法规则编程了。

💖 jQuery的$

  在jQuery中,被频繁使用的莫过于符号$。它拥有各种各样的功能,包括选择页面中的一个或是一类元素、作为功能能函数的前缀、用于完善window.onload、创建页面的DOM节点等。

  通过 jQuery,您可以选取(查询,query) HTML 元素,并对它们执行"操作"(actions)。

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

  • 美元符号定义 jQuery
  • 选择符(selector)“查询"和"查找” HTML 元素
  • jQuery 的 action() 执行对元素的操作

💞 选择器

在这里插入图片描述

  在CSS中选择器的作用是选择页面中的某一类元素(类别选择器)或者某一个元素(id选择器)。而jQuery中的$作为选择器标识,同样可以选择某一类或者某一个元素,只不过jQuery提供了更多、更全面的选择方式,并且为用户处理了浏览器的兼容性问题。

【1】jQuery基本选择器:

  标签选择器、类选择器、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的元素
全局选择器*匹配所有元素$(“*”)选取所有元素

【2】jQuery层次选择器:

  后代选择器、子选择器、相邻元素选择器和同辈元素选择器。

名称语法结构描述实例
后代选择器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~siblings选取prev元素之后的siblings元素$(“h2~ dl”)选取紧邻h2元素之后的同辈元素dl

【3】属性选择器

  属性选择器通过HTML元素的属性来选择元素。
在这里插入图片描述

  • 属性选择器可以根据是否包含某属性来获取元素
    如:a标签带有class属性
    在这里插入图片描述

  • 属性选择器可以根据属性值来获取元素
    如:class属性值为hot的元素
    在这里插入图片描述

  • 属性选择器可以指定选取不等于属性是某个特定值的元素
    如:class值不等于hot的元素
    在这里插入图片描述

  • 属性选择器可以指定属性值以指定值开头的元素
    如:a标签href属性值以www开头的元素
    在这里插入图片描述

  • 属性选择器可以指定属性值以指定值结尾的元素
    如:a标签href属性值以html结尾的元素
    在这里插入图片描述

  • 属性选择器可以指定属性值包含指定值的元素
    如:a标签href属性值包含“k2”的元素
    在这里插入图片描述

【4】过滤选择器

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

主要分类:

  • 基本过滤选择器
  • 可见性过滤选择器
  • 表单对象过滤选择器
  • 内容过滤选择器、子元素过滤选择器……

基本过滤选择器
请添加图片描述
案例代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>过滤选择器</title>
		<script src="js/jQuery-3.6.1.js"></script>
	</head>
	<body>
		<ul>
			<li>列表项第1项</li>
			<li>列表项第2项</li>
			<li>列表项第3项</li>
			<li>列表项第4项</li>
			<li>列表项第5项</li>
			<li>列表项第6项</li>
			<li>列表项第7项</li>
			<li>列表项第8项</li>
		</ul>
	</body>
	<script>
		$(function(){
			//获取第一个li元素,并将文本颜色设置为#0f0;
			$('li:first').css('color','#0f0');
			
			//获取最后一个li元素,并将文本颜色设置为#00f;
			$('li:last').css('color','#00f');
			
			//获取索引为2的元素,并将文本颜色设置为#f00;
			$('li:eq(2)').css('color','#f00');
			
			// $('li:gt(4)').css('color','#f00');
			// $('li:lt(4)').css('color','#f00');
		});
	</script>
</html>

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

可见性过滤选择器:通过元素显示状态来选取元素
在这里插入图片描述

案例代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/jQuery-3.6.1.js"></script>
		<style>
			h2{
				display: none;
			}
			
		</style>
	</head>
	<body>
		<p>段落标签</p>
		<h2>标题标签</h2>
		<button id="test">隐藏段落标签</button>
		<button id="demo">显示标题标签</button>
	</body>
	
	<script>
		$(function(){
			//获取id为test的button按钮,添加点击事件
			$('#test').click(function(){
				//选取可见的p标签,并将其隐藏
				$('p:visible').hide();
			});	
			
			//获取id为demo的button,并添加点击事件
			$('#demo').click(function(){
				$('h2:hidden').show();
			});
		});
	</script>
</html>

运行效果:
请添加图片描述

💞 功能函数前缀

  在JavaScript中,开发者经常需要编写一些功能函数来处理各种操作细节。例如在用户提交表单时,需要将输入框中最前端和最末端的空格清楚。JavaScript直到ES6才提供类似trim()的功能,而引入jQuery后,便可以直接使用trim()函数,如下所示:

$.trim(sString);
以上代码相当于:
jQuery.trim(sString);

  即trim()函数是jQuery对象的一个方法。

案例代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script src="js/jQuery-3.6.1.js"></script>
		<script>
			var sString='   12345678   ';
			sString=$.trim(sString);
			alert(sString.length)
		</script>
	</body>
</html>

💞 window.onload

  由于页面的HTML框架在页面完全加载后才能被使用,因此在DOM编程时,window.onload函数会被频繁地使用。倘若页面中有多处需要使用该函数,或者其它.js文件中也包含该函数,冲突问题将十分棘手。

  jQuery中的ready()方法很好地解决了上述问题,它能够自动地将其中的函数在页面加载完成后运行,并且同一个页面中可以使用多个ready()方法而不相互冲突。

案例代码:

		$(document).ready(function(){
			 var pEle =$('p');
			 console.log(pEle);
		});

上述代码可以简写:

		$(function(){
			 var pEle =$('p');
			 console.log(pEle);	
		});

简写语法:

$ (function(){
   //执行代码
});

💞 创建DOM元素

  前面我们学过,在JavaScript中,利用DOM方法创建元素,通常需要将document.createElement()、document.createTextNode()、appendChild()等配合使用,十分麻烦。而jQuery使用$则可以直接创建DOM元素,如下所示:

var oNewP=$("<p>这是一个感人肺腑的故事</p>")

  以上代码等同于JavaScript中的如下代码:

var oNewP=document.createElement("p"); //创建节点
var oText=document.createTextNode("这是一个感人肺腑的故事");
oNewP.appendChild(oText);

  另外,jQuery还提供了DOM元素的insertAfter()方法,因此可将上述代码改为使用jQuery创建DOM元素,如下所示:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>创建DOM元素</title>
	</head>
	<body>
		<p id="myTarget">插入这行文字之后</p>
		<p>也就是插入这行文字之前,但这行没有id,可能不存在</p>
		<script src="js/jQuery-3.6.1.js"></script>
		<script>
			$(function(){
				var oNewP=$("<p>我是新插入进来的文字</p>");//创建DOM元素
				oNewP.insertAfter("#myTarget");
			});
		</script>
	</body>
</html>

运行效果:
在这里插入图片描述
可以看到利用jQuery大大缩短了代码长度,节省了编写时间,为开发者提供了便利。

💖 投票快捷键

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

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

相关文章

手机怎么把图片转换成Word?这个小妙招大家要学会

使用手机怎么把图片转换成Word文档呢&#xff1f;大家在使用图片文件来办公的时候&#xff0c;有的图片里面有成段成段的文字&#xff0c;不仅阅读起来很不方便&#xff0c;还很难修改内容&#xff0c;这时候我们可以将图片里的内容转换成Word文档&#xff0c;就可以解决这一问…

利用gdal把多张tif合成一张大图

目录gdalwarpgdalbuildvrt有时候从网站下载遥感影像时&#xff0c;因为选定区域的遥感影像太大&#xff0c;下载后往往是自动就给切片下载了。特别是当选定区域特别大时&#xff0c;最后形成的切片会有几十甚至上百小块&#xff0c;且这些小块都没有重叠的地方&#xff0c;虽然…

MySQL8.0优化 - 事务的ACID特性

文章目录学习资料事务事务的ACID特性原子性&#xff08;atomicity&#xff09;一致性&#xff08;consistency&#xff09;隔离性&#xff08;isolation&#xff09;持久性总结学习资料 【MySQL数据库教程天花板&#xff0c;mysql安装到mysql高级&#xff0c;强&#xff01;硬…

以梦为马,不负韶华|电巢科技延安大学飞鹰计划实习班精彩回顾

时光流淌无声&#xff0c;昨天仿佛还初次见面&#xff0c;今天却又是一年的尾声。你是否结交到亲密的小伙伴&#xff1f;你是否感受到团队合作的魅力&#xff1f;你是否在延大这片沃土得到成长&#xff1f;假如你还没答案&#xff0c;那么看看其他人的回答。 在延安大学&#x…

node深度打印对象

Node 深度打印对象 在node中打印对象类型时&#xff0c;如果对象的层级过深&#xff0c;就会出现这样的问题 要想显示里面的值&#xff0c;就要通过JSON.stringify方法 这样打印出来不易于阅读且不美观&#xff0c;可以设置参数的方式来格式化JSON console.log(JSON.string…

【计算机组成原理】第三章单元测试

1.单选(2分) ‎执行算术右移指令的操作过程是 ‍A.操作数的符号位不变&#xff0c;各位顺次右移1位&#xff0c;符号位拷贝至最高数据位 B.操作数的符号位填0&#xff0c;各位顺次右移1位 C.操作数的符号位填1&#xff0c;各位顺次右移1位 D.进位标志移至符号位&#xff0…

九、Vue3基础之九

文章目录一、可视化1.1 接口API 也是后端项目1.2 前端项目开始1.2.1 echarts二、Vue3 Router2.1 Router的初步应用2.2 路由模式、Router原理2.3 命名路由、编程式导航2.4 历史记录2.5 路由传参2.6 嵌套路由2.7 命名视图2.8 重定向、别名2.9 导航守卫&#xff08;前置守卫&#…

SpringBoot整合dubbo(三)

整合nacos作为注册中心 一、下载nacos&#xff1a;Release 2.2.0-BETA (Oct 28, 2022) alibaba/nacos GitHub 1.1、直接启动时报错&#xff0c;需要指定单例启动&#xff1a;startup.cmd -m standalone 启动后在http://localhost:8848/nacos/index.html访问&#xff0c;默认…

Revit中记忆快速修改未识别的梁及“快速生成过梁”

一、Revit中记忆快速修改未识别的梁 我们在使用红瓦建模大师对结构梁进行翻模时&#xff0c;往往会出现梁未识别的情况(如图 1)&#xff0c;这需要我们人工手动去修改。图中这一跨梁的命名应该同 KL5 (2B)&#xff0c;只是尺寸不同&#xff0c;只需要将它替换成前一跨梁然后复制…

计算机网络—概述

互联网 互联网又称国际网络&#xff0c;指的是网络与网络之间所串连成的庞大网络&#xff0c;这些网络以一组通用的协议相连&#xff0c;形成逻辑上的单一巨大国际网络。简单的说&#xff0c;网络把主机连接起来&#xff0c;互联网就是把多种不同的网络连接起来。 ISP 互联…

分布式天花板?阿里百万架构师的ZK+Dubbo笔记,颠覆认知

蓦然回首自己做开发已经十年了&#xff0c;这十年中我获得了很多&#xff0c;技术能力、培训、出国、大公司的经历&#xff0c;还有很多很好的朋友。但再仔细一想&#xff0c;这十年中我至少浪费了五年时间&#xff0c;这五年可以足够让自己成长为一个优秀的程序员&#xff0c;…

Java语言知识大盘点(期末复习)一

&#x1f339;作者:云小逸 &#x1f4dd;个人主页:云小逸的主页 &#x1f4dd;Github:云小逸的Github &#x1f91f;motto:要敢于一个人默默的面对自己&#xff0c;强大自己才是核心。不要等到什么都没有了&#xff0c;才下定决心去做。种一颗树&#xff0c;最好的时间是十年前…

卡方检验简介

Chi square test&#xff08;卡方检验&#xff09;是用于评价两类变量之间是否存在相关性的统计检验方法。 医疗研究会产生大量不同类型的数据&#xff0c;最容易识别的是定量的数据。例如&#xff0c;直腿抬高 (SLR) 的受试者能够将腿抬高大于 0 度&#xff0c;这让我们可以计…

[附源码]Python计算机毕业设计JAVA疫情社区管理系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

大黄酸偶联鸡卵白蛋白 rhein-OVA,BFNB/MEB/MEA/BFNH-OVA

产品名称&#xff1a;大黄酸偶联鸡卵白蛋白 英文名称&#xff1a; rhein-OVA 用途&#xff1a;科研 状态&#xff1a;固体/粉末/溶液 产品规格&#xff1a;1g/5g/10g 保存&#xff1a;冷藏 储藏条件&#xff1a;-20℃ 储存时间&#xff1a;1年 大黄酸是一种有机化合物&#xf…

华为机试 - 堆栈中的剩余数字

目录 题目描述 输入描述 输出描述 用例 题目解析 算法源码 题目描述 向一个空栈中依次存入正整数&#xff0c;假设入栈元素 n(1<n<2^31-1)按顺序依次为 nx…n4、 n3、n2、 n1, 每当元素入栈时&#xff0c;如果 n1n2…ny(y 的范围[2,x]&#xff0c; 1<x<1000…

Windows平台上安装MySql 5.6 /8.0等的各种问题解决办法汇总

又是几个月过去了,我依然没有更新博客,深深的内疚缠绕着我,我对不起关注我的各位朋友们,从现在开始,我又回来了,正确能频繁的给大家带来新的知识点或小技巧。 📢欢迎点赞 :👍 收藏 ⭐留言 📝 如有错误敬请指正,赐人玫瑰,手留余香!📢本文作者:由webmote 原创…

一本书读懂大数据 读书笔记(1)

集。谷歌的MapReduce和GoogleFileSystem(GFS)发布了之后&#xff0c;大数据的定义中除了 涵盖大量数据之外&#xff0c;还包括数据处理的速度。 网络搜索索引&#xff0c;批量处理和分析大量数据集&#xff0c;数据处理的速度 研究机构Gartner曾给大数据&#xff08;Big data…

照片一键换天空怎么弄?不妨试试这三个照片一键换天空方法

小伙伴们有没有遇到过这样的情况&#xff0c;好不容易遇到假期&#xff0c;约了朋友一起外出游玩&#xff0c;想要拍一些好看的照片&#xff0c;奈何天空阴沉沉的&#xff0c;导致拍出的照片不太理想&#xff0c;又不想放弃这个难得的假期&#xff0c;有没有什么方法可以换照片…

数据包取证分析笔记

地址扫描 地址扫描探测是指利用ARP、ICMP请求目标网段&#xff0c;如果目标网段没有过滤规则&#xff0c;则可以通过回应消息获取目标网段中存活机器的IP地址和MAC地址&#xff0c;进而掌握拓扑结构。 端口扫描 全连接扫描 TCP扫描 全连接扫描调用操作系统提供的connect()函…