JQuery

优点:

(1)提供了强大的功能函数 (2)解决浏览器兼容性问题 (3)实现丰富的 UI 和插件 (4)纠正错误的脚本知识

jQuery"的核心
                $ 符号在 jQuery 中代表对 jQuery 对象的引用, "jQuery"是核心对象
                
            DOM对象
                根据id属性获取DOM对象    document.getElementById("id属性值");
                如果元素存在那么直接获取dom对象,如果元素不存在,值为null
                
            Jquery包装集对象
                根据id属性获取DOM对象    $("#id属性值");
                如果元素存在那么直接获取jquery对象,如果元素不存在,值为空包装集对象 (不会是null)
                
                注意:
                    dom对象判断对象是否获取到,判断值是否为null
                    Jquery包装集对象判断对象是否获取到,判断jquery对象的长度length 
                    
            Dom转换成jquery对象
            $(dom对象)


            Dom对象和jQuery包装集对象

!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/jquery-3.5.1.min.js" type="text/javascript" charset="utf-8"></script>
	</head>
	<body>
		
		<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);
			
			//jquery
			var divJquery = $("#div1");
			console.log(divJquery);
			var divJquery2 = $("#div2");
			console.log(divJquery2);
			
			//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>
	</body>
</html>

基础选择器

基础选择器
                id选择器                    #id$("#testDiv")选择id为testDiv的元素
                元素名称选择器            element$("div")选择所有div元素
                类选择器                    .class$(".blue")选择所有class=blue的元素
                选择所有元素                $("*")选择页面所有元素
                组合选择器                selector1,selector2,selectorN$("#testDiv,span,.blue")同时选中多个选择器匹配的元素

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/jquery-3.5.1.min.js" type="text/javascript" charset="utf-8"></script>
	</head>
	<body>
		<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 mydiv1 = $("#mydiv1");
			console.log(mydiv1);
			
			//元素名称选择器
			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>
	</body>
</html>

层次选择器


            层次选择器
                后代选择器     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元素

<div id="parent">层次择器
			<div id="child" class="testColor">父选择器
				<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);
			
			//子代选择器
			var zd = $("#parent > div");
			console.log(zd);
			
			//相邻选择器
			var xl = $(".testColor + div");
			console.log(xl);
			
			//同辈选择器
			var tb = $(".gray ~ img");
			console.log(tb);
		</script>

 表单选择器


            属性选择器
                $("[属性]");           选中页面中具备某样属性的元素
                $("[属性 = 值]");       选中页面中具备属性等于某个特定值的元素
        
            表单选择器
                表单元素选择器        :input             查找所有的input元素:$(":input");<br />注意:会匹配所有的input、textarea、select和button元素。
                文本框选择器            :text             查找所有文本框:$(":text")
                密码框选择器            :password             查找所有密码框:$(":password")
                单选按钮选择器        :radio             查找所有单选按钮:$(":radio")
                复选框选择器            :checkbox             查找所有复选框:$(":checkbox")
                提交按钮选择器        :submit             查找所有提交按钮:$(":submit")
                图像域选择器            :image             查找所有图像域:$(":image")
                重置按钮选择器        :reset             查找所有重置按钮:$(":reset")
                按钮选择器            :button             查找所有按钮:$(":button")
                文件域选择器            :file             查找所有文件域:$(":file")

<script type="text/javascript">
			//表单元素选择器
			var bds = $(":input");
			console.log(bds);
			
			//单选按钮选择器
			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>

过滤选择器

过滤选择器
                $(":eq(index)")     匹配元素的指定下标的元素 (下标从0开始)  .eq(index)
                $(":gt(index)")        匹配元素下标大于指定值元素 (下标从0开始).gt(index)
                $(":odd")            匹配奇数下标
                $(":even")            匹配偶数下标
                $(":checked")        匹配元素被选中

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/jquery-3.5.1.min.js" type="text/javascript" charset="utf-8"></script>
	</head>
	<body>
		<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)");
			console.log(eq);
			
			//匹配元素下标大于指定值元素
			var eq = $("[type]:gt(8)");
			console.log(eq);
			
			//匹配奇数下标
			var hob = $("[name = 'ufav']:odd");
			//匹配偶数下标
			var even = $("[name = 'ufav']:even");
			console.log(hob);
			console.log(even);
			
			//匹配元素被选中
			console.log($(":input:checked"));
		</script>
	</body>
</html>

操作单元属性

属性的分类
                固有的属性
                    src align method
                自定义的属性
                    abc='123'
                返回值是boolean类型的属性
                    checked disabled selected
                    
            操作属性
                attr
                    获取已存在的属性,可以直接获取到具体的值,如果属性是boolean类型的也是一样 具体的值
                prop  (不能操作自定义属性)
                    获取已存在的属性,可以直接获取到具体的值,如果属性是boolean类型 返回的是true/false
                    
            获取属性
                attr('属性名');
                prop('属性名');
                
            设置属性
                attr('属性名','属性值');
                prop('属性名','属性值');
                
            
            移除属性
                removeAttr(属性名)移除指定的属性

<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('type'),aa.attr('name'));
			console.log(aa.prop('type'),aa.prop('name'));
			
			//自定义的属性
			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');
			
			//移除属性
			bb.removeAttr('name');
		</script>

操作样式


            操作样式
                attr(“class”)                    获取class属性的值,即样式名称
                attr(“class”,”样式名”)            修改class属性的值,修改样式   直接覆盖原有的样式
                addClass(“样式名”)                添加样式名称
                css("样式名","样式值")            添加具体的样式   相当于在元素上添加style属性
                removeClass(class)                移除样式名称

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/jquery-3.5.1.min.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>
	</head>
	<body>
		<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);
			
			//修改class属性的值   直接覆盖原有的样式
			$("#conBlue").attr("class","green");
			
			//添加样式名称     
			$("#conBlue").addClass("larger");
			
			//添加具体的样式   相当于在元素上添加style属性
			$("#conRed").css("color","red");
			
			//removeClass  移除样式
			$("#remove").removeClass('larger');
			
		</script>
	</body>
</html>

操作元素的内容

非表单元素/表单元素的内容/值
            
                html()            获取元素的html内容
                html("html,内容") 设定元素的html内容
                text()            获取元素的文本内容,不包含html
                text("text 内容") 设置元素的文本内容,不包含html
                val()            获取元素value值
                val(‘值’)         设定元素的value值

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/jquery-3.5.1.min.js" type="text/javascript" charset="utf-8"></script>
	</head>
	<body>
		<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());
			console.log($("h3").text());
			
			
			//设置非表单元素 的内容/值
			$("#html").html("<h2>标签内容</h2>");
			$("#text").text("<h2>标签内容</h2>");
			
			//val()
			console.log($("[name='uname']").val());
			
			$("[name='uname']").val("orm");
		</script>
	</body>
</html>

创建元素和添加元素

 
            创建元素
                $('元素内容')
                
            添加元素
                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)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<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>
		<script src="js/jquery-3.5.1.min.js" type="text/javascript" charset="utf-8"></script>
	</head>
	<body>
		<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>麻辣香锅</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>
	</body>
</html>

删除元素

                remove()删除所选元素或指定的子元素,包括整个标签和内容一起删。
                empty()清空所选元素的内容

            //remove()  移除
			$('.green').remove();
			
			//empty()   清空
			 $('.blue').empty();

遍历元素

遍历元素
                ​each()
                ​    $(selector).each(function(index,element)) :遍历元素
                    ​    参数 function 为遍历时的回调函数,
                    ​    index 为遍历元素的序列号,从 0 开始。
                    ​    element是当前的元素,此时是dom元素。

<body>
		<h3>遍历元素 each()</h3>
		<span class="green">jquery</span>
		<span class="green">javase</span>
		<span class="green">http协议</span>
		<span class="green">servlet</span>
		
		<script src="js/jquery-3.5.1.min.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			var spans = $("span");
			spans.each(function(index,element){
				console.log(index,element);
				console.log($(element));
			});
			
			
		</script>
	</body>

jQuery事件

ready加载事件
            ​    ready()类似于 onLoad()事件
            ​    ready()可以写多个,按顺序执行
                ​    $(document).ready(function(){})
                    等价于
                    $(function(){})
                    
                ready加载事件和load加载事件的区别
                    load:等待加载页面中DOM结构(元素)和引入的资源后,执行对应代码
                    ready:等待加载页面中DOM结构(元素),执行对应代码
            
            绑定事件        
                $(selector).bind( eventType [, eventData], handler(eventObject));

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<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.5.1.min.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>
	</body>
</html>

 jqueryAjax

ajax  异步无刷新技术
            同步和异步
同步:必须等待前面的任务完成,才能继续后面的任务;
异步:不受当前任务的影响。 简单点说,当你去银行办业务,需要一个一个等叫号,轮到你才能你去办理,这就是同步;但是在你等叫号的过程中,你可以玩手机,这就是异步,不影响你的等候叫号。

Ajax的优势:


 1.不需要任何浏览器插件
 2.优秀的用户体验
 3.提高Web程序的性能
 4.减轻服务器和宽带的负担


Ajax的缺点:


 1.浏览器XMLHttpRequest 对象的支持度不足
 2.破坏浏览器前进与后退按钮的正常功能
 3.对搜索引擎的支持不足
 4.开发和调试工具的缺乏

get与post区别:

1.post的安全性高于get;如果以get方式请求,请求参数会拼接到url后面,安全性性低,以post方式请求,请求参数会包裹在请求体中,安全性更高

2.数量区别:get方式传输的数据量小,规定不能超过2kb,post方式请求数据量大,没有限制。

3.传输速度:get的传输速度高于post

因为使用方法相同,因此只要改变jQuery函数,就可以将程序在GET请求和POST请求之间切换

jquery调用ajax方法:

格式:

$.ajax({});

参数: type:

请求方式GET/POST

url:请求地址url

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

data:发送到服务器的数据

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

contentType:设置请求头

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

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

 

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
	</head>
	<body>
		<!-- 
			ajax  异步无刷新技术
			
				$.ajax({
					type:get/post,  请求方式
					url:请求地址,
					data:{
						//参数
						name:zhangsan,
						pwd:123456
					},
					dataType:'json'    预期服务器返回的数据类型
					success:function(abc){
						
					}
					
				});
				
				
				$.get
					$.get('地址',数据参数,回调函数);
					
				$.post
					$.post('地址',数据参数,回调函数);
					
				$.getJSON
					$.getJSON('js/cuisine_area.json',{name:"tom",age:100},function(data){
						console.log(data); // 要求返回的数据格式是JSON格式
					});
		 -->
		<script src="js/jquery-3.5.1.min.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			//ajax请求
			$.ajax({
				type:'get',
				url:'js/data.json',
				data:{
					uname:'zhangsan'
				},
				dataType:'json',
				success:function(abc){
					console.log(abc);
				}
			});
			
			$.get("js/data.json",function(data){
				console.log(data);
			});
			
			$.getJSON('js/data.json',function(data){
				console.log(data); // 要求返回的数据格式是JSON格式
			});
		</script>
	</body>
</html>

案例

!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/jquery-3.5.1.min.js" type="text/javascript" charset="utf-8"></script>
	</head>
	<body>
		<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><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>
	</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值