Jquery

本文详细介绍了jQuery的基本概念、下载安装、核心对象、DOM与jQuery对象转换、选择器的使用、DOM操作、事件处理以及Ajax操作。jQuery简化了JavaScript的DOM操作,提供了强大的选择器、丰富的插件和便捷的事件处理,是前端开发中的重要工具。
摘要由CSDN通过智能技术生成

5.1 主要内容

在这里插入图片描述

5.2 Jquery对象

  • jQuery 是一套兼容多浏览器的 javascript 脚本库. 核心理念是写得更少,做得更多,使用 jQuery 将极 大的提高编写 javascript 代码的效率,帮助开发者节省了大量的工作,让写出来的代码更加优雅,更加 健壮,“如虎添翼”。同时网络上丰富的 jQuery 插件也让我们的工作变成了"有了 jQuery,一切 so easy。" --因为我们已经站在巨人的肩膀上了。
  • jQuery 在 2006 年 1 月由美国人 John Resig 在纽约的 barcamp 发布,吸引了来自世界各地的众多 JavaScript 高手加入,由 Dave Methvin 率领团队进行开发。如今,jQuery已经成为最流行的 javascript 框架,在世界前 10000 个访问最多的网站中,有超过 55%在使用 jQuery。
5.2.1 Jquery的下载与安装
5.2.1.1 下载

http://jquery.com/ 下载

5.2.1.2 优点
  • 提供了强大的功能函数
  • 解决浏览器兼容性问题
  • 实现丰富的 UI 和插件
  • 纠正错误的脚本知识
5.2.1.3 安装

在页面引入即可

<script src="js/jquery-3.5.1.js" type="text/javascript" ></script>
5.2.2 Jquery核心
  • $ 符号在 jQuery 中代表对 jQuery 对象的引用, "jQuery"是核心对象。通过该对象可以获取jQuery对

象,调用jQuery提供的方法等。只有jQuery对象才能调用jQuery提供的方法。

		<div>块级元素</div>
		<script src="js/jquery-3.4.1.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			//获取元素
			var div = $("div");
			console.log(div);
		</script>
5.2.3 Dom对象 与 Jquery包装集对象
  • 明确 Dom 对象和 jQuery 包装集的概念, 将极大的加快我们的学习速度。原始的Dom对象只有DOM 接口提供的方法和属性,通过js代码获取的对象都是dom对象;而通过jQuery获取的对象是jQuery包装 集对象,简称jQuery对象,只有jQuery对象才能使用jQuery提供的方法。
5.2.3.1 DOM对象
  • 根据id属性获取DOM对象 document.getElementById(“id属性值”);Dom 对象只有有限的属性和方法
  • 如果元素存在那么直接获取dom对象,如果元素不存在,值为null
var div = document.getElementById("testDiv"); 
var divs = document.getElementsByTagName("div")
5.2.3.2 Jquery包装集对象
  • 根据id属性获取DOM对象 $("#id属性值");
  • 如果元素存在那么直接获取jquery对象,如果元素不存在,值为空包装集对象 (不会是null)
5.2.3.3 注意
  • dom对象判断对象是否获取到,判断值是否为null
  • Jquery包装集对象判断对象是否获取到,判断jquery对象的长度length
5.2.3.4 Dom转换成jquery对象
  • Dom对象转为jQuery对象,只需要利用 ( ) 方 法 进 行 包 装 即 可 , ()方法进行包装即可, (),(dom对象)
5.2.3.5 Jquery对象 转 Dom对象
  • jQuery对象转Dom对象,只需要取数组中的元素即可
5.2.3.6 实例
<script src="js/jquery-3.4.1.js" type="text/javascript" charset="utf-8"></script>
 		<div id="div1">块级元素</div>
		   <script type="text/javascript">
			//dom
			var divDom = document.getElementById("div1");
			console.log(divDom);
			var divDom2 = document.getElementById("div2");
			console.log(divDom2);//null
			
			//jquery
			var divJquery = $("#div1");
			console.log(divJquery);//jQuery.fn.init(1)
			var divJquery2 = $("#div2");
			console.log(divJquery2);//jQuery.fn.init
			
			//Dom转换成jquery对象
			var newDiv = $(divDom);
			console.log(newDiv);
			var str = "<div>123</div>";
			var newStr = $(str);
			console.log(newStr);
			
			//jquery对象转换成Dom
			var newDiv = divJquery[0];
			console.log(newDiv);
		</script>

5.3 Jquery选择器

  • 和使用js操作Dom一样,获取文档中的节点对象是很频繁的一个操作,在jQuery中提供了简便的方式 供我们查找|定位元素,称为jQuery选择器,选择器可以说是最考验一个人 jQuery 功力的地方,通俗的 讲, Selector 选择器就是"一个表示特殊语意的字符串"。 只要把选择器字符串传入上面的方法中就能够选 择不同的Dom 对象并且以 jQuery 包装集的形式返回。

  • jQuery 选择器按照功能主要分为"选择"和"过滤"。 并且是配合使用的,具体分类如下。基础选择器掌 握即可 ,其他用到再查阅

5.3.1 基础选择器
  • id选择器 #id$("#testDiv")选择id为testDiv的元素
  • 元素名称选择器 element$(“div”)选择所有div元素
  • 类选择器 .class$(".blue")选择所有class=blue的元素
  • 选择所有元素 $("*")选择页面所有元素
  • 组合选择器 selector1,selector2,selectorN$("#testDiv,span,.blue")同时选中多个选择器匹配的元素
<script src="js/jquery-3.4.1.js" type="text/javascript" charset="utf-8"></script>
 		<div id="mydiv1">id选择器1<span>span中的内容</span></div>
		<div id="mydiv2" class="blue">元素选择器</div>
		<span class="blue">样式选择器</span>
		<script type="text/javascript">
			//id选择器
			var id = $("#mydiv1");
			console.log(id);
			
			//元素名称选择器
			var divs = $("div");
			console.log(divs);
			
			//类选择器
			var blue = $(".blue");
			console.log(blue);
			
			//选择所有元素
			var all = $("*");
			console.log(all);
			
			//组合选择器
			var zh = $("#mydiv1,div,.blue")
			console.log(zh);
		</script>
5.3.2 层次选择器
  • 后代选择器 ancestor descendant$("#parent div") 选择id为parent的元素的所有div元素
  • 子代选择器 parent > child$("#parent>div") 选择id为parent的直接div子元素
  • 相邻选择器 prev + next$(".blue + img") 选择css类为blue的下一个img元素
  • 同辈选择器 prev ~ sibling$(".blue ~ img") 选择css类为blue的之后的img元素
<script src="js/jquery-3.4.1.js" type="text/javascript" charset="utf-8"></script>
			<div id="parent">层选择器
			<div id="child" class="testColor">父选择器
			     <!-- 往下找,上面一个img找不到 -->
				<img src="http://www.baidu.com/img/bd_logo1.png" width="270" height="129" />
				<div class="gray">子选择器</div>
				<img src="http://www.baidu.com/img/bd_logo1.png" width="270" height="129" />
				<img src="http://www.baidu.com/img/bd_logo1.png" width="270" height="129" />
			</div>
			<div>
				选择器2<div>选择器2中的div</div>
			</div>
		</div>
		<script type="text/javascript">
			//后代选择器
			var hd = $("#parent div");
			console.log(hd);//4个
			
			//子代选择器
			var zd = $("#parent>div");
			console.log(zd);//2个
			
			//相邻选择器
			var xl = $(".gray + img");
			console.log(xl);//1个
			
			//同辈选择器
			var tb = $(".gray ~ img");
			console.log(tb);//2个
		</script>
5.3.3 表单选择器与属性选择器
  • 属性选择器
    $("[属性]"); 选中页面中具备某样属性的元素
    $("[属性 = 值]"); 选中页面中具备属性等于某个特定值的元素

  • 表单选择器
    表单元素选择器 :input 查找所有的input元素: ( " : i n p u t " ) ; < b r / > 注 意 : 会 匹 配 所 有 的 i n p u t 、 t e x t a r e a 、 s e l e c t 和 b u t t o n 元 素 。 文 本 框 选 择 器 : t e x t 查 找 所 有 文 本 框 : (":input");<br />注意:会匹配所有的input、textarea、select和button元素。 文本框选择器 :text 查找所有文本框: (":input")<br/>inputtextareaselectbutton:text(":text")
    密码框选择器 :password 查找所有密码框: ( " : p a s s w o r d " ) 单 选 按 钮 选 择 器 : r a d i o 查 找 所 有 单 选 按 钮 : (":password") 单选按钮选择器 :radio 查找所有单选按钮: (":password"):radio(":radio")
    复选框选择器 :checkbox 查找所有复选框: ( " : c h e c k b o x " ) 提 交 按 钮 选 择 器 : s u b m i t 查 找 所 有 提 交 按 钮 : (":checkbox") 提交按钮选择器 :submit 查找所有提交按钮: (":checkbox"):submit(":submit")
    图像域选择器 :image 查找所有图像域: ( " : i m a g e " ) 重 置 按 钮 选 择 器 : r e s e t 查 找 所 有 重 置 按 钮 : (":image") 重置按钮选择器 :reset 查找所有重置按钮: (":image"):reset(":reset")
    按钮选择器 :button 查找所有按钮: ( " : b u t t o n " ) 文 件 域 选 择 器 : f i l e 查 找 所 有 文 件 域 : (":button") 文件域选择器 :file 查找所有文件域: (":button"):file(":file")

<script src="js/jquery-3.4.1.js" type="text/javascript" charset="utf-8"></script>
			<form id='myform' name="myform" method="post">
			<input type="hidden" name="uno" value="9999" disabled="disabled" />
			姓名:<input type="text" id="uname" name="uname" /><br />
			密码:<input type="password" id="upwd" name="upwd" value="123456" /><br />
			年龄:<input type="radio" name="uage" value="0" checked="checked" />小屁孩
				<input type="radio" name="uage" value="1" />你懂得 <br />
			爱好:<input type="checkbox" name="ufav" value="篮球" />篮球
			<input type="checkbox" name="ufav" value="爬床" abc='123' />爬床
			<input type="checkbox" name="ufav" value="代码" />代码<br />
			来自:<select id="ufrom" name="ufrom">
				<option value="-1" selected="selected">请选择</option>
				<option value="0">北京</option>
				<option value="1">上海</option>
			</select><br />
			简介:<textarea rows="10" cols="30" name="uintro"></textarea><br />
			头像:<input type="file" /><br />
			<input type="image" src="http://www.baidu.com/img/bd_logo1.png" width="20" height="20" />
			<button type="submit" onclick="return checkForm();">提交</button>
			<button type="reset">重置</button>
		</form>
		
		<script type="text/javascript">
			//表单元素选择器,所有的,不止input元素
			//input,select,textarea,button
			var bds = $(":input");
			console.log(bds);//14个
			
			//单选按钮选择器
			var radios = $(":radio");
			console.log(radios);
			
			//多选按钮
			var checkboxs = $(":checkbox");
			console.log(checkboxs);
			
			console.log('=========');
			//属性选择器   选中页面中具备某样属性的元素
			var pro1 = $("[disabled]");
			console.log(pro1);
			
			//选中页面中具备属性等于某个特定值的元素
			var pro2 = $('[type="radio"]');
			console.log(pro2);
			
			var pro3 = $('[name="uage"]');
			console.log(pro3);
			
			var pro4 = $('[abc="123"]');
			console.log(pro4);
		</script>
5.3.4 过滤选择器
  • $(":eq(index)") 匹配元素的指定下标的元素 (下标从0开始) .eq(index)
  • $(":gt(index)") 匹配元素下标大于指定值元素 (下标从0开始).gt(index)
  • $(":odd") 匹配奇数下标
  • $(":even") 匹配偶数下标
  • $(":checked") 匹配元素被选中
<script src="js/jquery-3.4.1.js" type="text/javascript" charset="utf-8"></script>
			<form id='myform' name="myform" method="post">
			<input type="hidden" name="uno" value="9999" disabled="disabled" />
			姓名:<input type="text" id="uname" name="uname" /><br />
			密码:<input type="password" id="upwd" name="upwd" value="123456" /><br />
			年龄:<input type="radio" name="uage" value="0" checked="checked" />小屁孩
				<input type="radio" name="uage" value="1" />你懂得 <br />
			爱好:<input type="checkbox" name="ufav" value="篮球" />篮球
			<input type="checkbox" name="ufav" value="爬床" abc='123' />爬床
			<input type="checkbox" name="ufav" value="代码" />代码<br />
			来自:<select id="ufrom" name="ufrom">
				<option value="-1" selected="selected">请选择</option>
				<option value="0">北京</option>
				<option value="1">上海</option>
			</select><br />
			简介:<textarea rows="10" cols="30" name="uintro"></textarea><br />
			头像:<input type="file" /><br />
			<input type="image" src="http://www.baidu.com/img/bd_logo1.png" width="20" height="20" />
			<button type="submit" onclick="return checkForm();">提交</button>
			<button type="reset">重置</button>
		</form>
		
		<script type="text/javascript">
			//匹配元素的指定下标的元素
			var eq = $("[type]:eq(1)");//0的话是最上面的script
			console.log(eq);
			
			//匹配元素下标大于指定值元素
			var eq = $("[type]:gt(8)");
			console.log(eq);
			
			//匹配奇数下标
			var hob = $("[name = 'ufav']:odd");
			//匹配偶数下标
			var even = $("[name = 'ufav']:even");
			console.log(hob);//1个
			console.log(even);//2个
			
			//匹配元素被选中
			console.log($(":input:checked"));
		</script>

5.4 Jquery Dom操作

  • jQuery也提供了对HTML节点的操作,而且在原生js的基础之上进行了优化,使用起来更加方便。 常用的从几个方面来操作,查找元素(选择器已经实现);创建节点对象;访问和设置节点对象的 值,以及属性;添加节点;删除节点;删除、添加、修改、设定节点的CSS样式等。
  • 注意:以下的操作 方式只适用于jQuery对象。
5.4.1 元素分类
  • 固有的属性
    src align method
  • 自定义的属性
    abc=‘123’
  • 返回值是boolean类型的属性
    checked disabled selected
5.4.2 操作元素的属性
  • attr
    获取已存在的属性,可以直接获取到具体的值,如果属性是boolean类型的也是一样 具体的值
  • prop (不能操作自定义属性)
    获取已存在的属性,可以直接获取到具体的值,如果属性是boolean类型 返回的是true/false
5.4.2.1 获取属性
  • attr(‘属性名’);
  • prop(‘属性名’);
5.4.2.2 设置属性
  • attr(‘属性名’,‘属性值’);
  • prop(‘属性名’,‘属性值’);
5.4.2.3 移除属性
  • removeAttr(属性名)移除指定的属性
5.4.2.4 实例
<script src="js/jquery-3.4.1.js" type="text/javascript" charset="utf-8"></script>
		<form action="" id="myform">
			<input type="checkbox" id="aa" data='123' name="ch" checked="checked"/>	aa
			<input type="checkbox" id="bb" data='456' name="ch" />	bb
		</form>
		<script type="text/javascript">
			//获取元素
			var aa = $("#aa");
			var bb = $("#bb");
			
			//获取固有属性值
			console.log(aa.attr("name"),aa.attr("type")); //ch checkbox
			console.log(aa.prop("name"),aa.prop("type")); //ch checkbox

			
			//自定义的属性
			console.log(aa.attr("data"));//123
			console.log(aa.prop("data"));//undefined,不能操作自定义
			
			//返回值是boolean类型的属性
			console.log(aa.attr("checked"));//checked
			console.log(aa.prop("checked"));//true
			//不存在的属性
			console.log(bb.attr("checked"));//undefined
			console.log(bb.prop("checked"));//false
			
			//设置
			aa.attr("data","abc");
			bb.prop("checked",true);
			aa.attr("name",'input');
			console.log(aa.attr("data"));//abc
			console.log(bb.prop("checked"));//true
			console.log(aa.attr("name"));//input
			
			//移除属性
			bb.removeAttr('name');
			console.log(bb.attr("name"));//undefined
		</script>
5.4.3 操作元素的样式
  • attr(“class”) 获取class属性的值,即样式名称

  • attr(“class”,”样式名”) 修改class属性的值,修改样式 直接覆盖原有的样式

  • addClass(“样式名”) 添加样式名称

  • css(“样式名”,“样式值”) 添加具体的样式 相当于在元素上添加style属性

    css({‘样式名’:’样式值’,’样式名2’:’样式值2’})

  • removeClass(class) 移除样式名称

	<script src="js/jquery-3.4.1.js" type="text/javascript" charset="utf-8"></script>
		<style type="text/css">
			div {
				padding: 8px;
				width: 180px;
			}

			.blue {
				background: blue;
			}

			.larger {
				font-size: 30px;
			}

			.green {
				background: green;
			}
		</style>
	<h3>css()方法设置元素样式</h3>
		<div id="conBlue" class="blue larger">天蓝色</div>
		<div id="conRed">大红色</div>
		<div id="remove" class="blue larger">天蓝色</div>
		 <script type="text/javascript">
		 	//获取class属性的值,即样式名称
			var div1 = $("#conBlue").attr("class");
			console.log(div1);//blue larger
			
			//修改class属性的值,修改样式   直接覆盖原有的样式
			 $("#conBlue").attr("class","green");
			
			//添加样式名称
			 $("#conBlue").addClass("larger");
			 
			 //添加具体的样式   相当于在元素上添加style属性
			  $("#conRed").css("color","red");
			  $("#conRed").css({"background-color":"gray","font-size":"30px"});
			  
			  //移除样式名称
			  $("#remove").removeClass('larger');
		 </script>
5.4.4 操作元素的内容
  • html() 获取元素的html内容
  • html(“html,内容”) 设定元素的html内容
  • text() 获取元素的文本内容,不包含html
  • text(“text 内容”) 设置元素的文本内容,不包含html
  • val() 获取元素value值
  • val(‘值’) 设定元素的value值
<script src="js/jquery-3.4.1.js" type="text/javascript" charset="utf-8"></script>
	<h3><span>html()和text()方法设置元素内容</span></h3>
		<div id="html"></div>
		<div id="text"></div>
		<input type="text" name="uname" value="oop" />
		<script type="text/javascript">
			//获取非表单元素 的内容/值
			console.log($("h3").html());//<span>html()和text()方法设置元素内容</span>
			console.log($("h3").text());//html()和text()方法设置元素内容
			
			//设置非表单元素 的内容/值
			$("#html").html("<h2>标签内容</h2>");//标签内容(有加粗变大效果)
			$("#text").text("<h2>标签内容</h2>");//<h2>标签内容</h2>
			
			//val()
			console.log($("[name='uname']").val());//oop
			
			$("[name='uname']").val("orm");
		</script>
5.4.5 创建和添加元素
5.4.5.1 创建元素
  • $(‘元素内容’)
5.4.5.2添加元素
  • prepend(content) 在被选元素内部的开头插入元素或内容,被追加的 content 参数,可以是字符、HTML 元素标记。
  • $(content).prependTo(selector) 把 content 元素或内容加入 selector 元素开头
  • append(content) 在被选元素内部的结尾插入元素或内容,被追加的 content 参数,可以是字符、HTML 元素标记。
  • $(content).appendTo(selector) 把 content元素或内容插入selector 元素内,默认是在尾部
  • before() 在元素前插入指定的元素或内容:$(selector).before(content),不需要父节点
  • after() 在元素后插入指定的元素或内容:$(selector).after(content),不需要父节点
	<script src="js/jquery-3.4.1.js" type="text/javascript" charset="utf-8"></script>
		<style type="text/css">
				div {
					margin: 10px 0px;
				}
		
				span {
					color: white;
					padding: 8px
				}
		
				.red {
					background-color: red;
				}
		
				.blue {
					background-color: blue;
				}
		
				.green {
					background-color: green;
				}
			</style>
		<h3>prepend()方法前追加内容</h3>
		<h3>prependTo()方法前追加内容</h3>
		<h3>append()方法后追加内容</h3>
		<h3>appendTo()方法后追加内容</h3>
		<span class="red">男神</span>
		<span class="blue">偶像</span>
		<div class="green">
			<span>小鲜肉</span>
		</div>
		
		<script type="text/javascript">
			//prepend  内部前追加
			//准备元素
			var str = $('<span>UZI</span>');
			//将内容填充到<div class="green">的内部
			$(".green").prepend(str);
			
			//prependTo  被内部前追加
			var str2 = $('<span>lbw</span>');
			$(str2).prependTo($(".green"));
			
			//append   内部后追加
			var str3 = "<span>厂长</span>";
			$(".green").append(str3);
			
			//appendTo   被内部后追加
			var str4 = "<span>faker</span>";
			$(str4).appendTo($(".green"));
			
			//before  前追加
			$("[class = 'red']").before("<span style='color:black'>卢本伟</span>");
			
			//after   后追加
			$("[class = 'red']").after("<span style='color:black'>姿态</span>");
		</script>
5.4.6 删除元素
  • remove()删除所选元素或指定的子元素,包括整个标签和内容一起删。
  • empty()清空所选元素的内容
		<script src="js/jquery-3.4.1.js" type="text/javascript" charset="utf-8"></script>
		<style type="text/css">
			span {
				color: white;
				padding: 8px;
				margin: 5px;
				float: left;
			}

			.green {
				background-color: green;
			}

			.blue {
				background-color: blue;
			}
		</style>
<h3>删除元素</h3>
		<span class="green">jquery<a>删除</a></span>
		<span class="blue">javase</span>
		<span class="green">http协议</span>
		<span class="blue">servlet</span>

		<script type="text/javascript">
			//remove()  移除
			$('.green').remove();
			
			//empty()   清空
			// $('.blue').empty();
		</script>
5.4.7 遍历元素
  • each()
  • $(selector).each(function(index,element)) :遍历元素
    参数 function 为遍历时的回调函数,
    index 为遍历元素的序列号,从 0 开始。
    element是当前的元素,此时是dom元素。
		<script src="jquery-3.4.1.js" type="text/javascript" charset="utf-8"></script>
		<style type="text/css">
			span {
				color: white;
				padding: 8px;
				margin: 5px;
				float: left;
			}

			.green {
				background-color: green;
			}

			.blue {
				background-color: blue;
			}
		</style>
		<h3>遍历元素 each()</h3>
		<span class="green">jquery</span>
		<span class="green">javase</span>
		<span class="green">http协议</span>
		<span class="green">servlet</span>
		
		<script type="text/javascript">
			var spans = $("span");
			spans.each(function(index,element){
				console.log(index,element);
				console.log($(element));//需要封装一下才能去调用JQuery方法
			});
		</script>

5.5 Jquery事件

5.5.1 ready加载事件
  • ready()类似于 onLoad()事件

  • ready()可以写多个,按顺序执行
    $(document).ready(function(){})
    等价于
    $(function(){})

  • ready加载事件和load加载事件的区别
    load:等待加载页面中DOM结构(元素)和引入的资源后,执行对应代码
    ready:等待加载页面中DOM结构(元素),执行对应代码

	<script src="js/jquery-3.4.1.js" type="text/javascript" charset="utf-8"></script>
		
		<script type="text/javascript">
			//load
			window.onload = function(){
				console.log("abc");
			}
			
			//ready加载事件
			 $(function(){
			 	console.log($("#aa"));
			 });
			
			$(document).ready(function(){
				console.log($("#aa"));
			});
		</script>
5.5.2 绑定事件
  • $(selector).bind( eventType [, eventData], handler(eventObject));

    eventType :是一个字符串类型的事件类型,就是你所需要绑定的事件。

    [, eventData]:传递的参数,格式:{名:值,名2:值2}

    handler(eventObject):该事件触发执行的函数

		<button type="button" id="aa">按钮</button>
		<button type="button" id="bb">按钮2</button>
		<button type="button" id="cc">按钮3</button>
		
		<button type="button" id="dd">按钮4</button>
		 
		<script src="js/jquery-3.4.1.js" type="text/javascript" charset="utf-8"></script>
		
		<script type="text/javascript">
			//load
			/* window.onload = function(){
				console.log("abc");
			}
			
			//ready加载事件
			 $(function(){
			 	console.log($("#aa"));
			 });
			
			$(document).ready(function(){
				console.log($("#aa"));
			}); */
			
			//bind绑定
			$("#aa").bind('click',function(){
				console.log('点击事件');
			});
			
			//bind绑定多个
			$("#bb").bind('mouseout',function(){
				console.log('移开事件');
			}).bind('mouseover',function(){
				console.log('悬停事件');
			});
			
			$("#cc").bind({
				'click':function(){
					console.log("点击事件");
				},
				'mousemove':function(){
					console.log("移动事件");
				}
			})
			
			//事件绑定的简洁使用方式
			$("#dd").click(function(){
				console.log("点击事件");
			})
			
			$("#dd").click(function(){
				console.log("点击事件");
			}).mouseover(function(){
				console.log("悬停事件");
			});
		</script>

5.6 Jquery Ajax

ajax 异步无刷新技术

5.6.1 $.ajax

jquery调用ajax方法:

格式:$.ajax({});

参数:

type:请求方式GET/POST

url:请求地址url

async:是否异步,默认是true表示异步

data:发送到服务器的数据

dataType:预期服务器返回的数据类型 json/text/html

contentType:设置请求头

success:请求成功时调用此函数

error:请求失败时调用此函数

  • $.ajax({
    type:get/post, 请求方式
    url:请求地址,
    data:{
    //参数
    name:zhangsan,
    pwd:123456
    },
    dataType:‘json’ 预期服务器返回的数据类型
    success:function(abc){

    ​ }
    ​ });

{
	"code":1,
	"msg":"",
	"data":[
		{
			"id":1,
			"uname":"zhangsan",
			"age":20,
			"sex":true,
			"job":"programmer"
		},
		{
			"id":2,
			"uname":"zhangsan",
			"age":28,
			"sex":false,
			"job":"teacher"
		},
		{
			"id":3,
			"uname":"zhangsan",
			"age":24,
			"sex":true,
			"job":"programmer"
		},
		{
			"id":4,
			"uname":"zhangsan",
			"age":23,
			"sex":false,
			"job":"police"
		}
	]
}
		<script src="js/jquery-3.4.1.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			//ajax请求
			$.ajax({
				type:'get',
				url:'js/data.json',
				data:{
					uname:'lisi'
				},
				dataType:'json',
				success:function(data){
					console.log(data);
				}
			});
		</script>
5.6.2 $.get
  • 这是一个简单的 GET 请求功能以取代复杂 $.ajax 。
  • 请求成功时可调用回调函数。如果需要在出错时执行函数,请使用 $.ajax。
  • $.get(‘地址’,数据参数,回调函数);
// 1.请求json文件,忽略返回值 $.get('js/cuisine_area.json'); 
// 2.请求json文件,传递参数,忽略返回值 $.get('js/cuisine_area.json',{name:"tom",age:100});
// 3.请求json文件,拿到返回值,请求成功后可拿到返回值 $.get('js/cuisine_area.json',function(data){ console.log(data); }); 
// 4.请求json文件,传递参数,拿到返回值 $.get('js/cuisine_area.json',{name:"tom",age:100},function(data){ console.log(data); });
	$.get("js/data.json",function(data){
				console.log(data);
			});
5.6.3 $.post
  • 这是一个简单的 POST 请求功能以取代复杂 $.ajax 。

  • 请求成功时可调用回调函数。如果需要在出错时执行函数,请使用 $.ajax。

  • $.post(‘地址’,数据参数,回调函数);

// 1.请求json文件,忽略返回值 $.post('../js/cuisine_area.json'); 
// 2.请求json文件,传递参数,忽略返回值 $.post('js/cuisine_area.json',{name:"tom",age:100}); // 3.请求json文件,拿到返回值,请求成功后可拿到返回值 $.post('js/cuisine_area.json',function(data){ console.log(data); }); 
// 4.请求json文件,传递参数,拿到返回值 $.post('js/cuisine_area.json',{name:"tom",age:100},function(data){ console.log(data); });
5.6.4 $.getJSON
  • 表示请求返回的数据类型是JSON格式的ajax请求
  • $.getJSON
$.getJSON('js/cuisine_area.json',{name:"tom",age:100},function(data){ console.log(data); // 要求返回的数据格式是JSON格式 });
	$.getJSON('js/data.json',function(data){
				console.log(data); // 要求返回的数据格式是JSON格式
			});
5.6.7 案例
<script src="js/jquery-3.4.1.js" type="text/javascript" charset="utf-8"></script>
		<div id="msg"></div>
		<script type="text/javascript">
			//请求数据
			$.ajax({
				type:'Get',
				url:'js/data.json',
				data:{},
				dataType:'json',
				success:function(result){
					//判断是否请求成功
					if(result.code == 1){
						//判断是否返回数据
						if(result.data.length > 0){
							//显示数据
							//准备表格
							var table = $('<table border="1" width="500px" align="center" style="border-collapse: collapse;"></table>');
							//准备表头
							var tHead = '<tr><th>编号</th><th>名称</th><th>年龄</th><th>性别</th><th>工作</th></tr>';
							//将表头添加到表格中
							table.append(tHead);
							
							//准备数据
							for(var i = 0; i < result.data.length; i++){
								//获取循环中的当前对象
								var user = result.data[i];
								var sex = user.sex? '男':'女';
								
								//准备每一行数据
								var userData = "<tr align='center'><td>"+user.id+"</td><td>"+user.uname+"</td>";
								userData += "<td>"+user.age+"</td><td>"+sex+"</td><td>"+user.job+"</td></tr>";
								
								//追加到表格中
								table.append(userData);
							}
							
							//将表格显示在页面中
							$("#msg").html(table);
						}
					}else{
						//将失败的原因显示在页面中
						$("#msg").html(result.msg);
					}
				}
			});
		</script>

11

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值