jQuery(JS库) | 一文带你掌握jQuery的使用

news2024/12/24 8:14:52

目录 

一:开篇基础

1. 为什么使用 jQuery

2. DOM 对象

3. JS对象和 jQuery 对象

4. 获取 jQuery

5. 牛刀小试

6. DOM 对象和 jQuery 对象

二:选择器

1. 基本选择器

2. 表单选择器

三:过滤器

1. 基本过滤器

2. 表单对象属性过滤器

四:函数

1. 第一组:val、text、attr

2. 第二组:hide、show、remove、empty 、append、html、 each

五:事件 

1. 定义元素监听事件

2. on() 绑定事件

六 :Ajax

1. $.ajax()

2. $.get() & $.post()


一:开篇基础

(1)jQuery 是一款跨主流浏览器的 JavaScript 库,封装了 JavaScript 相关方法调用,简化 JavaScript 对 HTML DOM 操作

(2)官网地址: https://jquery.com/

(3)官网首页 jQuery 介绍

jQuery 是一个快速,小巧,功能丰富的 JavaScript 库。 它通过易于使用的 API 在大 量浏览器中运行,使得 HTML 文档遍历和操作,事件处理,动画和 Ajax 变得更加简单。 通 过多功能性和可扩展性的结合,jQuery 改变了数百万人编写 JavaScript 的方式。

1. 为什么使用 jQuery

主要原因:它能够兼容市面上主流的浏览器, IE 和 FireFox,Google 浏览器 处理 AJAX,创建异步对象是不同的,而 jQuery 能够使用一种方式在不同的浏览器创建 AJAX

异步对象。

具有优点:

(1)写少代码,做多事情【write less do more】。

(2)免费,开源且轻量级的 js 库,容量很小。

(3)兼容市面上主流浏览器,例如 IE,Firefox,Chrome。

(4)能够处理 HTML/JSP/XML、CSS、DOM、事件、实现动画效果,也能提供异步 AJAX

功能。

(5)文档手册很全,很详细。

(6)成熟的插件可供选择,多种 js 组件,例如日历组件(点击按钮显示下来日期)。

(7)出错后,有一定的提示信息。

(8)不用再在 html 里面通过<script>标签插入一大堆 js 来调用命令了

例如:使用 JavaScript 定位 DOM 对象常用的三种方式:

(1)通过 ID 属性:document.getElementById()

(2)通过 class 属性:getElementsByClassName()

(3)通过标签名:document.getElementsByTagName()

上面代码可以看出 JavaScript 方法名太长了,大小写的组合太多了,编写代码效率,容易出 错。jQuery 分别使用$(“#id”) , $(“.class 名”) , $(“标签名) 封装了上面的 js 方法。

2. DOM 对象

(1)文档对象模型(Document Object Model,简称 DOM),是 W3C 组织推荐的处理可扩展 标志语言的标准编程接口。

(2)通过 DOM 对 HTML 页面的解析,可以将页面元素解析为元素节点属性节点文本节点这些解析出的节点对象,即 DOM 对象。DOM 对象可以使用 JavaScript 中的方法。

3. JS对象和 jQuery 对象

(1)用 JavaScript 语法创建的对象叫做 JavaScript 对象, JavaScript 对象只能调用 JavaScript 对 象的 API。

(2)用 JQuery 语法创建的对象叫做 JQuery 对象, jQuery 对象只能调用 jQuery 对象的 API。注意:jQuery表示的对象都是数组,数组中的每个对象都是 DOM 对象。

(3)JQuery 对象与 JavaScript 对象是可以互相转化的,一般地,由于 Jquery 用起来更加方便, 我们都是将 JavaScript 对象转化成 Jquery 对象。

4. 获取 jQuery

(1)官网下载地址:https://jquery.com/download/

(2)对于每一个同一版本号的 jQuery,其库又分为两个:

一个是未压缩版,可查看源码, 开发时使用;

一个是压缩版,将注释、空格均做了删除,将变量字符数减少,产品上线时使用。

5. 牛刀小试

(1)单独学习 jQuery 库使用,可以轻量的开发工具,例如 EditPlus , HBuilder,HbuilderX

(2)编写项目可以使用集成开发工具,例如在 IDEA, Eclipse , MyEclipse ,WebStorm 等

(3)这里以HBuilder为例,题目:浏览器完全装载 html 页面 DOM 后,显示一个提示信息框

①以 HbuilderX 为工具,创建一个项目(名称:jQuery-study),给项目选择一个文件存放目录。

②在项目中再创建一个目录,右键项目名称—新建—目录,常用名称为 js;并把下载的 jQuery.js 文件拷贝到js目录

③首先要将 jQuery 库引入,然后调用里面的函数来简化代码

😊 $(document) ,  $是jQuery中的函数名称, document是函数的参数;作用是 document对象变成  jQuery函数库可以使用的对象。 
😊ready:是jQuery中的函数, 是准备的意思, 当页面的dom对象加载成功后会执行ready函数的内容 ;ready 相当于js中的onload事件。
😊function()自定义的回调函数,表示onload后要执行的功能。

😊$(document).ready()$()、jQuery()、window.jQuery()等价的,所以$(document).ready()可以 写成 $(function() { alert(“Hello jQuery”) } );

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>第一个例子</title>
	</head>
	<body>
		
		<!--使用jQuery库之前,要先引入-->
		<script type="text/javascript" src="js/jquery-3.6.0.js"></script>
		<script type="text/javascript">
			// 标准方式
			$(document).ready(function(){
				alert("hello jQuery1")
			})
			// 简写方式:两者是等价的
			$(function(){
				alert("hello jQuery2")
			})
		</script>
			
	</body>
</html>

6. DOM 对象和 jQuery 对象

(1)DOM 对象是用 JavaScript 语法创建的对象,也就是前面说的 js 对象。

(2)Dom对象可以和jquery对象相互的转换。
dom对象可以转为jquery, 语法: $(dom对象)
jquery对象也可以转为dom对象, 语法: 从数组中获取第一个对象, 第一个对象就是dom对象, 使用[0]或者get{0}

(3)为什么要进行dom和jquery的转换:目的是要使用对象的方法,或者方法。
当你的dom对象时,可以使用dom对象的属性或者方法, 如果你要想使用jquery提供的函数,必须是jquery对象才可以。

(1)DOM 对象转换 jQuery 对象:

①使用$(DOM 对象) 方式,可以 DOM 对象转换为 jQuery 对象, 转换为 jQuery 对象才可以 使用 jQuery 中的提供的方法,操作 DOM 对象。

②一般情况下,在命名 jQuery 对象时,为了 与 DOM 对象进行区分,习惯性的以$ 开头,这不是必须的。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>DOM转jQuery</title>
	</head>
	<body>
		<script type="text/javascript" src="js/jquery-3.6.0.js"></script>
		<script type="text/javascript">
			$(function(){ // 页面加载完毕,等价于window.onload
				// 给按钮绑定单击事件
				document.getElementById("btn").onclick = function(){
					// 获取文本框的DOM对象
					var domObj = document.getElementById("username")
					// 调用DOM对象的value属性获取值
					alert("DOM对象:"+domObj.value)
					
					// 使用jQuery函数$()把DOM对象转换为jQuery对象
					var $jqObj= $(domObj) // $非必要,可省略
					// 调用jQuery对象的val()方法获取值
					alert("jQuery对象:"+$jqObj.val())
					
				}
			})
		</script>
		
		<input type="text" id="username" />
		<button id="btn">DOM转jQuery</button>
	</body>
</html>

(2)jQuery 对象转为 DOM 对象

jQuery 对象本身为数组对象,该数组中的第 0 个元素即为该 jQuery 对象对应的 DOM

对象。所以有两种方式可以获取到 DOM 对象:get(0) 方式与下标[0]。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>jQueryToDom</title>
		
		<script type="text/javascript" src="js/jquery-3.6.0.js"></script>
		<script type="text/javascript">
			// 点击按钮,执行回调函数
			function cal(){
				// 获取jQuery对象,然后根据下标[0]或者get(0)获取对应的Dom对象
				// 这里id=num的只有一个,所以下标为0的就是button对象
				// var obj = $("#num")[0]
				var obj = $("#num").get(0)
				// 获取前端提交的值
				var num = obj.value
				// 重新设置value的值
				obj.value = num*num
			}
		</script>
	</head>
	<body>
		<button value="计算平方" onclick="cal()">计算平方</button>
		<input type="text" id="num">
	</body>
</html>

二:选择器

选择器: 其实就是一个字符串,用来定位dom对象条件;通知 jquery 函数定位满足条件的 dom 对象。定位了dom对象,就可以通过jquery的函数操作dom!

1. 基本选择器

 常用的选择器:
(1)id选择器, 语法: $("#dom对象的id值")
        通过dom对象的id定位dom对象的。 通过id找对象, id在当前页面中是唯一值。

(2)class选择器, 语法: $(".class样式名")
        class表示css中的样式, 使用样式的名称定位dom对象的。

(3)标签选择器, 语法: $("标签名称")
        使用标签名称定位dom对象的

(4)所有选择器,语法:$(“*”)

        选取页面中所有 DOM 对象,整个页面!

(5)组合选择器,语法:$(“id,class,标签名”)

        组合选择器是多个被选对象间使用逗号分隔后形成的选择器,可以组合 id,class,标签名等。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>jQueryToDom</title>
		
		<!-- CSS的知识点:下面三个div都会被初始化 -->
		<style type="text/css">
			/* 先使用标签选择器,设置初始状态 */
			div{
				width : 200px;
				height : 100px;
				background : gray;
			}
		</style>
		
		<!-- 引入jQuery库 -->
		<script type="text/javascript" src="js/jquery-3.6.0.js"></script>
		<script type="text/javascript">
			/* 通过id选择器进行更改 */
			function fun1(){
				// 获取id为one的div对象
				var obj = $("#one")
				// 调用css()方法重新设置背景色
				obj.css("background","red")
			}
			/* 通过class选择器进行修改 */
			function fun2(){
				// 获取class为two的div对象
				var obj = $(".two")
				// 调用css()方法重新设置背景色
				obj.css("background","yellow")
			}
			/* 通过div标签选择器进行修改 */
			function fun3(){
				// 获取标签为div的div对象,三个都能获取到,是一个数组
				//jquery的操作都是操作数组中的全部成员,所以是给所有的div都设置的背景色				
				var obj = $("div")
				// 调用css()方法重新设置背景色
				obj.css("background","blue")
			}
			/* $(“*”) 所有选择器,选取页面中所有 DOM 对象(整个页面)。*/ 
			function fun4(){
				// 拿到的是整个页面的对象
				var obj = $("*")
				// 调用css()方法重新设置背景色
				obj.css("background","green")
			}
			/* $(“id,class,标签名”) 组合选择器*/
			function fun5(){
				/* 组合使用:id选择器、类选择器、标签选择器 */
				var obj = $("#one,.two,span")
				// 调用css()方法重新设置背景色
				obj.css("background","orange")
			}
			
		</script>
	</head>

	<body>
		<!-- 定义样式 -->
		<div id="one" class="one">one</div><br>
		<div id="two" class="two">two</div><br>
		<div id="three" class="three">three</div><br>
		
		<span>span</span><br>
		
		<!-- 定义按钮 -->
		<button value="one" onclick="fun1()">one</button>
		<button value="two" onclick="fun2()">two</button>
		<button value="three" onclick="fun3()">three</button>
		
		<button value="所有" onclick="fun4()">整个页面</button>
		<button value="组合" onclick="fun5()">组合</button>
		
	</body>
</html>

2. 表单选择器

(1)表单相关元素选择器是指文本框、单选框、复选框、下拉列表等元素的选择方式。该方法无论是否存在表单,均可做出相应选择。表单选择器是为了能更加容易地操作表单, 表单选择器是根据元素类型来定义的!例如:

<input type="text"> 
<input type="password"> 
<input type="radio"> 
<input type="checkbox"> 
<input type="button"> 
<input type="file"> 
<input type="submit"> 
<input type="reset"> 

(2)语法: $(":type属性值"),例如:

$(":text")选取所有的单行文本框 
$(":password")选取所有的密码框 
$(":radio")选取所有的单选框 
$(":checkbox")选取所有的多选框 
$(":file")选取所有的上传按钮 

注:$(":tr"): 不能用,tr 不是 input 标签

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>jQueryToDom</title>
	
		<!-- 引入jQuery库 -->
		<script type="text/javascript" src="js/jquery-3.6.0.js"></script>
		<script type="text/javascript">
			//使用表单选择器 $(":type的值")
			function fun1(){
				//定位text
				var obj = $(":text")
				//获取value属性的值 val()是jquery中的函数, 读取value属性值
				alert( obj.val());
			}
			function fun2() {
				//定位radio
				var obj = $(":radio");//数组,目前是两个对象 man ,woman
				//循环数组,数组中的成员是 dom对象,可以dom的属性或者函数
				for(var i=0;i<obj.length;i++){
					//从数组值获取成员,使用下标的方式
					var  dom = obj[i];
					//使用dom对象的属性,获取value值
					alert(dom.value)
				}
			}
			function fun3(){
				//定位checkbox
				var obj = $(":checkbox"); //数组,有三个对象
				for(var i=0;i<obj.length;i++){
					var dom = obj[i];
					//alert(dom.value);
					//使用jqueyr的val函数, 获取value的值
					//1. 需要jquery对象
					var jObj = $(dom); // jObj 是jquery对象
					//2. 调用jquery函数
					alert("jquery的函数调用=" + jObj.val());
					
				}
				
			}
			
		</script>
	</head>
	<body>
		<!-- 定义一个文本框 -->
		<input type="text" value="zhangsan"></input><br>
		<!-- 定义两个单选框 -->
		<input type="radio" value="man"/>男<br>
		<input type="radio" value="woman"/>女<br>
		<!--定义三个复选框-->
		<input type="checkbox" value="bike" /> 骑行 <br/>
		<input type="checkbox" value="football" /> 足球 <br/>
		<input type="checkbox" value="music" /> 音乐 <br/>
		
		<!--三个按钮-->
		<input type="button" value="读取text的值" onclick="fun1()"/>
		<br/>
		<input type="button" value="读取radio的值" onclick="fun2()"/>
		<br/>
		<input type="button" value="读取checkbox的值" onclick="fun3()"/>
	</body>
</html>
		
	</body>
</html>

三:过滤器

(1)jQuery 对象中存储的 DOM 对象顺序与页面标签声明位置关系:

             <div>1</div> dom1 
            <div>2</div> dom2 
            <div>3</div> dom3 

$("div") == [dom1,dom2,dom3] 与前面的声明顺序要保持一致

(2)过滤器就是过滤条件,对已经定位到数组中 DOM 对象进行过滤筛选,过滤条件不能独立出现在 jquery 函数;过滤器也是一个字符串,用来筛选dom对象的,并且不能单独使用, 必须和选择器一起使用!

1. 基本过滤器

(1)选择第一个 first, 保留数组中第一个 DOM 对象;语法:$(“选择器:first”)

(2)选择最后个 last, 保留数组中最后 DOM 对象;语法:$("选择器:last")

(3)选择数组中指定对象的 DOM 对象;语法:$(“选择器:eq(数组索引)”)

(4)选择数组中小于指定索引的所有 DOM 对象;语法:$(“选择器:lt(数组索引)”)

(5)选择数组中大于指定索引的所有 DOM 对象;语法:$(“选择器:gt(数组索引)”)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>jQueryToDom</title>
		<style type="text/css">
			/* 使用标签选择器先给div设置背景色 */
			div{ 
				background: gray;
			}
		</style>
	
		<!-- 引入jQuery库 -->
		<script type="text/javascript" src="js/jquery-3.6.0.js"></script>
		<script type="text/javascript">
			$(document).ready(function(){ // 就等价于:$(function() {
				//当页面dom对象加载后,给对象绑定事件,因为此时button对象已经在内存中创建好了,才能使用.
				
				// 获取第一个div
				$("#btn1").click(function(){ // 绑定事件
					var obj = $("div:first") // 获取对象
					obj.css("background","red") // 设置背景色
				})
				
				// 获取最后一个div
				$("#btn2").click(function(){ // 绑定事件
					var obj = $("div:last") // 获取对象
					obj.css("background","green") // 设置背景色
				})
				
				
				// 根据下标获取指定的div
				$("#btn3").click(function(){ // 绑定事件
					var obj = $("div:eq(3)") // 获取对象
					obj.css("background","blue") // 设置背景色
				})
				
				// 获取下标小于3的div (0,1,2)
				$("#btn4").click(function(){ // 绑定事件
					var obj = $("div:lt(3)") // 获取对象
					obj.css("background","orange") // 设置背景色
				})
				
				// 获取下标小于3的div(4,5)
				$("#btn5").click(function(){ // 绑定事件
					var obj = $("div:gt(3)") // 获取对象
					obj.css("background","yellow") // 设置背景色
				})			
				
			})
			
		</script>
	</head>
	<body>
		
		<!-- 定义div -->
		<div id="one">div-0</div>
		<div id="two">div-1</div>
		<div>div-2
		    <div>div-3</div>
			<div>div-4</div>
		</div>
		<div>div-5</div>
		<br/>
		
		<!-- 定义按钮,根据id并绑定按钮单击事件 -->
		<input type="button" value="获取第一个div" id="btn1"/>
		<br/>
		<input type="button" value="获取最后一个div" id="btn2"/>
		<br/>
		<input type="button" value="获取下标等于3的div" id="btn3"/>
		<br/>
		<input type="button" value="获取下标小于3的div" id="btn4"/>
		<br/>
		<input type="button" value="获取下标大于3的div" id="btn5"/>
	
	</body>
</html>
		
	</body>
</html>

2. 表单对象属性过滤器

(1)表单属性过滤器: 根据表单中dom对象的状态情况,定位dom对象的。
①启用状态:enabled , 
②不可用状态:disabled
③单选框、复选框选中状态:checked ,例如:radio, checkbox 

④下拉列表选中状态:selected,例如:select父标签的option字标签

(2)选择可用的文本框;$(“:text:enabled”)

(3)选择不可用的文本框;$(“:text:disabled”)

(4)复选框选中的元素;$(“:checkbox:checked”)

(5)选择指定下拉列表的被选中元素;选择器>option:selected(>左是父标签,右是子标签)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>jQueryToDom</title>
	
	
		<!-- 引入jQuery库 -->
		<script type="text/javascript" src="js/jquery-3.6.0.js"></script>
		<script type="text/javascript">
			$(function(){ /* 页面加载 */
				// 设置可用text的value是hello
				$("#btn1").click(function(){
					// 根据表单选择器筛选
					var obj = $(":text:enabled")
					obj.val("hello")
				})
				
				// 显示默认被选中的复选框的值
				$("#btn2").click(function(){
					// 根据表单选择器筛选
					var obj = $(":checkbox:checked")
					// 循环遍历打印
					for(var i = 0;i<obj.length;i++){
						alert(obj[i].value)
					}
				})
				
				// 显示选中下拉列表框的值
				$("#btn3").click(function(){
					// 根据标签选择器或者id选择器进行筛选
					var obj= $("select>option:selected");
					alert(obj.val())
				})
				
			})
		</script>
	</head>
	<body>
		<!-- 定义文本框 -->
		<input type="text"  id="txt1" value="text1" /><br/>
		<input type="text"  id="txt2" value="text2" disabled="true"/><br/> <!-- 不可用 -->
		<input type="text"  id="txt3" value="text3" /><br/>
		<input type="text"  id="txt4" value="text4" disabled/><br/> <!-- 不可用 -->
		<br/>
		<!-- 定义复选框 -->
		<input type="checkbox" value="游泳" />游泳 <br/>
		<input type="checkbox" value="健身" checked />健身 <br/> <!-- 表示默认选中 -->
		<input type="checkbox" value="电子游戏" checked />电子游戏 <br/> <!-- 表示默认选中 -->
		<br/>
		<!-- 定义下拉列表框 -->
		<select id="sel">
			<option value="java">java语言</option>
			<option value="go" selected>go语言</option><!-- 表示默认选中 -->
			<option value="python">python语言</option>
		</select>
		
		<!-- 定义按钮 -->
		<input type="button" value="设置可以text的value是hello" id="btn1"/>
		<br/>
		<button id="btn2">显示选中的复选框的值</button>
		<br/>
		<button id="btn3">显示选中下拉列表框的值</button>
	
		
	</body>
</html>

四:函数

1. 第一组:val、text、attr

(1)val()函数

操作数组中 DOM 对象的 value 属性

②$(选择器).val() 无参数调用形式, 读取数组中第一个 DOM 对象的value 属性值。

③$(选择器).val(值)有参形式调用,对数组中所有 DOM 对象的 value 属性值进行统一赋值

(2)text()函数

操作数组中所有 DOM 对象的【文字显示内容属性】

②$(选择器).text()无参数调用读取数组中所有 DOM 对象的文字显示内容,将得到内容拼接为一个字符串返回。

③$(选择器).text(值)有参调用,对数组中所有 DOM 对象的文字显示内容进行统一赋值

(3)attr()函数

(1)对 val, text 之外的其他属性操作

(2)$(选择器).attr(“属性名”)获取 DOM 数组第一个对象的属性值

(3)$(选择器).attr(“属性名”,“值”): 对数组中所有 DOM 对象的属性设为新值

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>jQueryToDom</title>
		<!-- 给div设置样式设置背景颜色 -->
		<style type="text/css">
			div{
				background: yellow;
			}
		</style>
		<!-- 引入jQuery库 -->
		<script type="text/javascript" src="js/jquery-3.6.0.js"></script>
		<script type="text/javascript">
			$(function(){
				// 获取第一个文本框的值
				$("#btn1").click(function(){
					// 调用无参的val()方法,获取第一个 DOM 对象的value
					alert($(":text").val()) // 使用表单选择器
				})
				
				// 设置所有文本框的value值
				$("#btn2").click(function(){
					// 调用有参的val("三国")方法,给所有的 DOM 对象的value统一赋值
					$(":text").val("三国") // 使用表单选择器
				})
				
				// 获取所有div的文本值,
				$("#btn3").click(function(){
					// 调用无参的text()方法,获取所有dom对象的文本值,连接成一个字符串
					alert($("div").text()) // 使用标签选择器
				})
				
				// 设置所有div的文本值
				$("#btn4").click(function(){
					// 调用有参的text("Hello Div")方法,设置所有div的文本值
					$("div").text("Hello Div") // 使用标签选择器
				})
				
				// 读取src属性的值
				$("#btn5").click(function(){
					// 调用attr("属性名"),读取指定属性的值
					alert($("img").attr("src")) // 使用标签选择器
				})
				
				// 设置指定的属性值
				$("#btn6").click(function(){
					// 调用attr("属性名","值"),设置指定的属性值
					$("img").attr("src","img/ex2.jpg")// 使用标签选择器
				})
				
			})
		</script>
	</head>
	<body>
		<!-- 定义文本框 -->
		<input type="text" value="刘备" /><br/>
		<input type="text" value="关羽" /><br/>
		<input type="text" value="张飞" /><br/>
		<!-- 定义div -->
		<div>第一个div</div>
		<div>第二个div</div>
		<div>第三个div</div>
		<br/>
		<!-- 插入图片 -->
		<img src="img/ex1.jpg" id="image1">
		<br>
		
		<!-- 定义按钮,触发时间,调用回调函数 -->
		<input type="button" value="获取第一个文本框的值" id="btn1"/>
		<br/>
		<input type="button" value="设置所有文本框的value值" id="btn2"/>
		<br/>
		<input type="button" value="获取所有div的文本值" id="btn3"/>
		<br/>
		<input type="button" value="设置div的文本值" id="btn4"/>
		<br/>
		<input type="button" value="读取src属性的值" id="btn5"/>
		<br/>
		<input type="button" value="设置指定的属性值" id="btn6"/>
	
	</body>
</html>

2. 第二组:hide、show、remove、empty 、append、html、 each

(1)$(选择器).hide() :将数组中所有 DOM 对象隐藏起来

(2)$(选择器).show():将数组中所有 DOM 对象在浏览器中显示起来

(3)$(选择器).remove():将数组中所有 DOM 对象及其子对象一并删除

(4)$(选择器).empty():将数组中所有 DOM 对象的子对象删除

(5)$(选择器).append("动态添加的 div")为数组中所有 DOM 对象添加子对象

(6)设置或返回被选元素的内容(innerHTML)。

$(选择器).html():无参数调用方法,获取 DOM 数组第一个元素的内容

$(选择器).html(值):有参数调用,用于设置 DOM 数组中所有元素的内容

(7)each 是对数组,json 和 dom 数组等的遍历,对每个元素调用一次函数。

语法 1:$.each( 要遍历的对象, function(index,element) { 处理程序 } ); $: 相当于是java的一个类名,each:就是类中的静态方法。静态方法调用,可以使用 类名.方法名称 

语法 2:jQuery 对象.each( function( index, element ) { 处理程序 } );实际上jquery对象就是dom数组;所以这种方法只有对象是dom数组才能使用

             index: 数组的下标

             element: 数组的对象

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>jQueryToDom</title>
		
		<!-- 引入jQuery库 -->
		<script type="text/javascript" src="js/jquery-3.6.0.js"></script>
		<script type="text/javascript">
			$(function(){
				// 将数组中所有 DOM 对象隐藏起来
				$("#btn1").click(function(){
					$("div").hide();
				})
				
				// 将数组中所有 DOM 对象显示出来
				$("#btn2").click(function(){
					$("div").show()
				})
				
				//使用remove:删除父和子所有的dom对象
				$("#btn3").click(function(){
					$("select").remove()
				})
				
				//使用empty 删除子dom对象
				$("#btn4").click(function(){
					$("select").empty()
				})
				
				// 使用append,增加dom对象
				$("#btn5").click(function(){
					//给div增加一个table
					$("#father").append("<table border=1><tr><td>第一列</td><td>第二列</td></tr></table>");
				})
				
				//使用html()函数,获取数组中第一个dom对象的文本值(innerHTML)
				$("#btn6").click(function(){
					// 会把html代码也接收,这样在浏览器上才能显示效果
					alert($("span").html()) // 我是mysql <b>数据库</b>
					// 只会接收纯文本,并把接收到的所有文本拼成字符串
					alert($("span").text()) // 我是mysql数据库我是jdbc
					
				})
				
				//使用 html(有参数):设置dom对象的文本值
				$("#btn7").click(function(){
					$("span").html("<b>Hello</b>") 
				})
				
				// 循环普通数组
				$("#btn8").click(function(){
					// 定义一个普通数组
					var arr = [1,2,3,4,5]
					$.each(arr,function(index,element){
						alert("循环变量/次数"+index+";"+"数组成员"+element)
					})

				})
				
				// 循环json
				$("#btn9").click(function(){
					// 定义一个json
					var jsonObj = {"username" : "zhangsan","password" : "123456"}
					$.each(jsonObj,function(i,n){
						alert("key="+i+","+"value="+n)
					})						
				})
				
				// 循环dom数组
				$("#btn10").click(function(){
					// 使用表单选择器,拿到所有的文本框对象
					var domArray = $(":text") // dom数组
					$.each(domArray,function(i,n){
						// n 是数组中的每一个dom对象
						alert("循环变量/次数="+i+","+"文本框的value="+n.value)
					})
					
					// 语法2:jQuery对象.function(index,element)
					domArray.each(function(i,n){
						alert("循环变量/次数="+i+","+"文本框的value="+n.value)
					})
					
				})
			})
		</script>
	</head>
	<body>
		<!-- 定义文本框 -->
		<input type="text" value="刘备" />
		<input type="text" value="关羽" />
		<input type="text" value="张飞" />
		<!-- 定义下拉列表 -->
		<select>
			<option value="老虎">老虎</option>
			<option value="狮子">狮子</option>
			<option value="豹子">豹子</option>
		</select>
		<br/>
		<select>
			<option value="亚洲">亚洲</option>
			<option value="欧洲">欧洲</option>
			<option value="美洲">美洲</option>
		</select>
		<br>
		<!-- 定义div -->
		<div id="father" style="background: #FFFF00">我是第一个div</div>
		<!-- 定义span标签 -->
		<span>我是mysql <b>数据库</b></span>
		<br/>
		<span>我是jdbc</span><br>
		
		<!-- 定义按钮,绑定触发事件 -->
		<button type="button" id="btn1">隐藏所有div</button><br>
		<button type="button" id="btn2">显示所有div</button><br>
		<button type="button" id="btn3">使用remove删除父和子对象</button><br>
		<button type="button" id="btn4">使用empty删子对象</button><br>
		<button type="button" id="btn5">使用append,增加dom对象</button><br>
		<button type="button" id="btn6">获取第一个dom的文本值</button><br>
		<button type="button" id="btn7">设置span的所以dom的文本值</button><br>
		<button type="button" id="btn8">循环普通数组</button><br>
		<button type="button" id="btn9">循环json</button><br>
		<button type="button" id="btn10">循环dom数组</button><br>

	</body>
</html>

五:事件 

为页面元素绑定事件,即对于指定页面元素,当某个事件发生后,执行指定动作

1. 定义元素监听事件

(1)语法:$(选择器).事件名称( 事件的处理函数)

 $(选择器):定位dom对象, dom对象可以有多个, 这些dom对象都绑定事件了。
事件名称:就是js中事件去掉on的部分。
事件的处理函数:就是一个function ,当事件发生时,执行这个函数的内容。
(2)说明:监听事件名称是 js 事件中去掉 on 后的内容,比如:js 中的 onclick 的监听事件名称是 click;例子:

为页面中所有的 button 绑定 onclick,并关联处理函数 fun1;$("button").click(fun1)

为页面中所有的 tr 标签绑定 onmouseover,并关联处理函数 fun2;$("tr").mouseover(fun2)

2. on() 绑定事件

(1)on() 方法在被选元素上添加事件处理程序。

(2)语法:$(选择器).on(event,data,function)  

                    $(选择器).on( 事件名称 , 传的json数据,事件的处理函数)

①event:事件名称,就是js事件中去掉on的部分, 例如js中onclick ,这里就是click;事件可以是一个或者多个,多个之间空格分开。

②data:可选;规定传递到函数的额外数据,json 格式 。

③function: 可选;规定当事件发生时运行的函数。

需求:定义一个div,先给div增加一个dom对象,然后再给这个dom对象绑定事件

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>jQueryToDom</title>
		
		<!-- 引入jQuery库 -->
		<script type="text/javascript" src="js/jquery-3.6.0.js"></script>
		<script type="text/javascript">
			$(function(){
				// 使用click进行绑定
				$("#btn").click(function(){
					//使用append增加dom对象,注意:里面要改成单引号,不然与外面冲突
					$("#mydiv").append("<button type='button' id='newBtn'>新增加的Dom对象</button>")
					// 使用on进行绑定,给这个新增加的按钮绑定事件
					$("#newBtn").on("click",function(){
						alert("新建的按钮被单击了")
					})
					
				})
			})
		</script>
	</head>
	<body>
		<!-- 先定义一个div -->
		<div id="mydiv" style="background: #FFFF00;">我是一个div</div>
		<!-- 再定义一个按钮 -->
		<input type="button" value="创建一个button,绑定一个click" id="btn" /><br>
		
	</body>
</html>

六 :Ajax

(1)jQuery 提供多个与 AJAX 有关的方法。通过 jQuery 发送AJAX 请求,可以使用 HTTP Get和 HTTP Post 从远程服务器上请求文本、HTML、XML 或 JSON 同时能够把接收的数据更新到 DOM 对象。没有jquery之前,使用XMLHttpRequest发送ajax请求 , 有4个步骤。  jQuery简化了ajax请求的处理。使用三个函数可以实现ajax请求的处理:

① $.ajax() : jquery中实现ajax的核心函数。
②$.post() : 使用post方式做ajax请求。
③$.get() : 使用get方式发送ajax请求。

(2)$.post()和$.get() 他们在内部都是调用的 $.ajax() 

(3)$.ajax函数的使用, 函数的参数表示请求的url, 请求的方式,参数值等信息。$.ajax()参数是一个json的结构。

1. $.ajax()

(1)$.ajax() 是 jQuery 中 AJAX 请求的核心方法,所有的其他方法都是在内部使用此方法语法: $.ajax( { name:value, name:value, ... } )

(2)说明:参数是 json 的数据,包含请求方式,数据,回调方法等。

async : 是一个boolean类型的值, 默认是true ,表示异步请求。可以不写async这个配置项,和xmlHttp.open(get,url,true),第三个参数一样的意思。

contentType :一个字符串,表示发送数据到服务器时所使用的内容类型。默认是:"application/x-www-form-urlencoded"。 例如:你想表示请求的参数是json格式的, 可以写:application/json。

data:规定要发送到服务器的数据,可以是:string, 数组,多数是 json

dataType:表示期望从服务器端返回的数据格式,可选的有: xml , html ,text ,json
当我们使用$.ajax()发送请求时, 会把dataType的值发送给服务器, 那我们的servlet能够读取到dataType的值,就知道你的浏览器需要的是 json或者xml的数据,那么服务器就可以
返回你需要的数据格式。

error:如果请求失败要运行的函数, 其中 xhr, status, error 是自定义的形参名

success一个function , 请求成功了,从服务器端返回了数据,会执行success指定函数;相当于之前使用XMLHttpRequest对象, 当readyState==4 && status==200的时候。

type:规定请求的类型(GET 或 POST 等),默认是 GET, get,post 不用区分大小写

url:规定发送请求的 URL。

(3)以上url , data ,dataType, success是常用的参数。 

$.ajax(  {  async:true , 
			contentType:"application/json" , 
			data: {name:"lisi",age:20 },
			dataType:"json",
			error:function(){ 
                        // 请求出现错误时,执行的函数
			},
			success:function(data) {
                                 // data 就是responseText, 是jquery处理后的数据。
			},
			url:"bmiAjax",
			type:"get"
		}  
										 
	)

2. $.get() & $.post()

(1)$.get() 方法使用 HTTP GET 请求从服务器加载数据。语法:$.get(url,data,function(data,status,xhr),dataType)

(2)$.post() 方法使用 HTTP POST 请求从服务器加载数据。语法:$.post(URL,data,function(data,status,xhr),dataType)

总结:对于Ajax的内容我们前面已经学习过了,包括前面也尝试手写了一个小型的jQuery实现省市联动的小项目;这里就不做多做赘述了!

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

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

相关文章

天津人才引进迁出迁入延期经验分享

由于2022年疫情&#xff0c;集体户口折腾了5个月终于告与段落了&#xff0c;只能说2022年点真得太背了。。。把自己的痛苦经验分享给大家乐乐。。。 迁出找人代办&#xff0c;获得准迁证后&#xff0c;个人证件比准迁证提前将近2天开始邮寄&#xff0c;但最后还比准迁证晚到了1…

做几个链表相关的练习题吧!!

对于链表&#xff0c;笔者在之前就已经有过几篇文章&#xff0c;详细的讲解了&#xff01;感兴趣的各位老铁&#xff0c;请进入博主的主页进行查找&#xff01;https://blog.csdn.net/weixin_64308540/?typeblog言归正传&#xff01;对于链表&#xff0c;光学不做&#xff0c;…

浅谈 Redis 的切片集群

切片集群&#xff0c;也叫分片集群&#xff0c;就是指启动多个 Redis 实例组成一个集群&#xff0c;然后按照一定的规则&#xff0c;把收到的数据划分成多份&#xff0c;每一份用一个实例来保存。回到我们刚刚的场景中&#xff0c;如果把 25GB 的数据平均分成 5 份&#xff08;…

stm32f407VET6 系统学习 day08 SPI 的使用 和 flash 的讲解

1.什么是SPI控制器 SPI 是英语Serial Peripheral interface的缩写&#xff0c;顾名思义就是串行外围设备接 口。是Motorola首先在其MC68HCXX系列处理器上定义的。 SPI&#xff0c;是一种高速的&#xff0c;全双工&#xff0c;同步的通信总线&#xff08;因为带有SCL同步时钟&am…

2023年PMP备考攻略全指南看这里就够了!

PMP考试是一年四次的&#xff0c;一般在3月、6月、9月、12月份考试&#xff08;考试时间一般为周六&#xff09;。 所以如果有想法一定要在这个几个时间点之间备考准备哦。 二&#xff0c;报名流程 一般都是中英文两个官网都报名 1.英文报名 需要在PMI官方网站提交填写申请…

【Linux】软件包管理器yum和编辑器vim

文章目录一、Linux软件包管理器yum1. 什么是软件包2. 查看软件包/安装软件/卸载软件3. 关于rzsz二、Linux编辑器vim1. vim的基本概念2. vim的基本操作3. vim命令模式指令集4. vim底行模式指令集5. vim的配置三、普通用户无法使用sudo的问题一、Linux软件包管理器yum 1. 什么是…

学习周报-20230106

文章目录一 Linux常用系统日志一 常用系统日志二 系统日志优先级三 其他日志文件二 DNS域名解析一 定义二 配置文件三 DNS解析流程四 总结三 vim编辑器的三种模式四 Linux虚拟机克隆后网卡名从eth0变成eth1一 系统环境二 问题发现三 解决过程五 在rhel6系统部署iscsi远程存储一…

项目资源规划前需要了解的基础知识

项目资源规划是优化各项目资源使用的一个可靠方法。你根据团队成员的技能、能力和对项目的适应性将任务分配给他们&#xff0c;以实现最大效率。 换句话说&#xff0c;规划项目资源的过程可以帮助你回答项目经理可能提出的两个最重要的问题。 ● 如何确保在团队不过度劳累的情…

零基础学MySQL(一)-- 启动与创建数据库及对数据库的备份与恢复

&#x1f9e7;启动与创建数据库及对数据库的备份与恢复&#x1f957;一、启动与连接数据库1️⃣启动数据库2️⃣连接数据库&#x1f96b;二、数据库的基本介绍1️⃣数据库的三层结构2️⃣数据在数据库中的存储方式3️⃣SQL 语句分类&#x1f371;三、对数据库的操作1️⃣创建数…

Python 读取千万级数据自动写入 MySQL 数据库

Python 读取数据自动写入 MySQL 数据库&#xff0c;这个需求在工作中是非常普遍的&#xff0c;主要涉及到 python 操作数据库&#xff0c;读写更新等&#xff0c;数据库可能是 mongodb、 es&#xff0c;他们的处理思路都是相似的&#xff0c;只需要将操作数据库的语法更换即可。…

react+openlayers实现点要素的创建及其点上overlay叠加层的实现

前言 网上关于react或者vue3与openlayers结合的案例非常少&#xff0c;今天由于工作中用到&#xff0c;特记录下笔记&#xff0c;后面将持续更新react和vue3与ol的结合案例&#xff08;新手勿喷&#xff09;。 1.地图上要素&#xff08;点线面&#xff09;的创建 以点要素为…

C进阶:数据在内存中的存储

深度剖析数据在内存中的存储C进阶:数据在内存中的存储深度剖析数据在内存中的存储数据类型介绍类型的基本归类整型家族浮点数家族&#xff1a;构造类型&#xff1a;指针类型&#xff1a;空类型&#xff1a;整型在内存中的存储原码、反码、补码原码反码补码的相互转换整型数据的…

基于WebRtc的web播放大华海康rtsp视频流(延迟一秒以内)

基于WebRtc的web播放大华海康rtsp视频流&#xff08;延迟一秒以内&#xff09;WebRtc下载WebRtc运行Rtc测试Rtc使用html播放需要在vue上播放的可以看下一篇文章WebRtc你好&#xff01; 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可…

谷粒学院——第十七章、课程微信支付

需求分析 需要实现的功能 需要提供的接口 后端实现 创建数据库表 创建 service_order 模块 引入依赖 <dependencies><dependency><groupId>com.github.wxpay</groupId><artifactId>wxpay-sdk</artifactId><version>0.0.3</ve…

elasticsearch 7.9.3知识归纳整理(六)之 kibana图形化操作es指南

kibana图形化操作es指南 一、创建用户&#xff0c;角色和权限指引 1.创建角色 1.1 在kibana首页点击Manage and Administer the Elastic Stack下的securitys settings 1.2 点击左侧Security 下的roles 1.3 点击右上角的create role 1.4 输入角色名字 完成后点击下面的create…

华为手表开发:WATCH 3 Pro(3)创建项目以及运行完整流程

华为手表开发&#xff1a;WATCH 3 Pro&#xff08;3&#xff09;创建项目以及运行完整流程初环境与设备创建项目创建项目入口配置项目运行项目报错需要在 Appgallery Connect , 创建项目&#xff0c;然后在项目中登录账号就可以了登录后的最终结果再次点击运行&#xff0c;我们…

通俗易懂的java设计模式(5)-抽象工厂模式模式

什么是抽象工厂模式&#xff1f; 抽象工厂模式&#xff0c;可以说是工厂模式的升级版 关于工厂模式&#xff1a;通俗易懂的工厂模式 抽象工厂&#xff1a;围绕着一个超级工厂去创建其他的工厂&#xff0c;这个超级工厂也被称为工厂的工厂&#xff0c;这个设计模式属于创建型…

【小5聊】回看2022,展望2023,分享我的年度总结和感想,在一个行业十年,坚持下去你就是这个行业的专家

2022年&#xff0c;已成为过去&#xff01;2023年&#xff0c;TA已悄然而至&#xff01; 非常感谢CSDN提供的技术平台&#xff0c;很早就关注了C站&#xff0c;11年的时候&#xff0c;当时用的是163邮箱注册的账号&#xff0c;也是主要用来找资料看文章。 18年的时候&#xff0…

八、k8s 数据存储

文章目录1 数据存储介绍1.1 基本存储1.1.1 EmptyDir1.1.2 HostPath1.1.3 NFS2 高级存储2.1 PV2.2 PVC2.3 生命周期3 配置存储3.1 ConfigMap3.2 Secret1 数据存储介绍 在前面已经提到&#xff0c;容器的生命周期可能很短&#xff0c;会被频繁地创建和销毁。那么容器在销毁时&am…

基础数据结构——队列和栈

目录 一、队列 1、循环队列 2、Python队列的三种实现方式 3、例题——队列操作 4、优先队列 &#xff08;1&#xff09;基本操作 &#xff08;2&#xff09;例题&#xff08;lanqiaoOJ题号1228&#xff09; 二、栈 1、用 list 实现栈 2、用 collections.deque 实现栈…