js高级jQuery框架easyUI框架

js高级与easyUI框架

一、JavaScript高级

1.ajax请求
ajax:局部刷新技术
使用场景:分页数据的刷新,二级联动,验证用户名是否重复,地图局部刷新
核心对象: JavaScript 对象 XMLHttpRequest
原生js:ajax使用:

1.一个事件监听:onreadystatechange
	onreadystatechange存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数
2.两个状态 status readystatus
	status :
	200: "OK"  请求成功
	404: "NOT FOUND" 没有找到对应资源
	500:"Server Error" 服务器端错误
	readystatus:
	存有 XMLHttpRequest对象的请求状态。从 0 到 4 发生变化。
	0: 请求未初始化			 未创建
	1: 服务器连接已建立 	 open()方法
	2: 请求已接收			 send()方法
	3: 请求处理中           服务器处理中
	4: 请求已完成,且响应已就绪   响应完毕
3.三个方法 open send setRequestHeader
	open(method,url,async)	
	创建请求,并且规定请求的类型、URL 以及是否异步处理请求。
	method:请求的类型;GET 或 POST
	url:文件在服务器上的位置
	async:true(异步),一定要选择true或 false(同步)
	send(string)	
	将请求发送到服务器。
	string:仅用于 POST 请求,字符串必须是服务器URL编码格式(列如:param1=value1&param2=value2);
	setRequestHeader(header,value)	,添加额外的请求头信息,post提交必须使用
	向请求添加 HTTP 头。
	header: 规定头的名称
	value: 规定头的值
	注意:该方法必须在open与send之间调用; 
		原因:
			1、open之后,open是创建一个请求,或者理解为请求的基本准备,如果没有请求,何来设置请求头信息;
			2、send之前,send是发送一个请求,请求会把当前请求的头信息进行发送,发送后设置头信息无效;
			post提交必须使用:xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
例子:
<script type="text/javascript">
		function check(name){
			var ajax;
			try {
				//如果是其它浏览器,这句代码可以成功,ajax对象就拿到了
				ajax  = new XMLHttpRequest(); 
			} catch (e) {
				//如果是IE,上面肯定会报错,被抓取,就执行下面这句代码(IE支持)
				ajax = new ActiveXObject("Microsoft.XMLHTTP"); 
			}
			//拿到前台的用户名
			var username=name.value;
			//开启访问请求
			ajax.open("GET","/getUsername?username="+username,true);
			//监听事件
			ajax.onreadystatechange =function(){
				if(ajax.readyState==4&&ajax.status==200){
						alert(ajax.responseText);
					//后台都以字符串形式传到前台
					if(ajax.responseText=="true"){
						
						document.getElementById("mySpan").innerHTML="<font color='red'>用户太受欢迎</font>";
					}else{
						document.getElementById("mySpan").innerHTML="<font color='green'>放心食用</font>";
					}
				}
			}
			//发送请求
			ajax.send();
			
		}
		</script>

二、json

json:一种特殊定义的用来,网络传输的字符串,它有着特殊的格式,且存在json对象,可以直接取值,使用方便
json格式:[{“name”:“sss”,“age”:18},{“name”:“mmm”,“age”:18}]
json字符串与json对象的转换:
json字符串—>json对象:
1.var jsonobj=json.eval("("+jsonstr+")")
2.var jsonobj=JSON.parse(jsonstr)注意此方式必须json字符串是标准字符串格式
json对象—>json字符串
var jsonstr=‘jsonobj’;
案列:原生js ajax和json模拟登陆
需求:利用原生js ajax和json模拟登陆
思路:前台通过元素拿到对应的用户名和密码,将用户名和密码通过ajax请求传递到后台,后台判断数据是否正确,将信息以json字符串的方式传递到前台,前台将json字符串 转换为json对象,取出信息
注意事项:post请求需要添加请求头信息

ajax.setRequestHeader("Content-type","application/x-www-form-urlencoded");

后台登陆程序`

</head>
<body>
	用户名:<input type="text" id="username"  />
	密码:<input type="text" id="pwd"  />
	<input type="button" onclick="check()" value="登录"/>
	<span id="mySpan"></span>
</body>
<script type="text/javascript">
	function check(){
		var ajax;
		try {
			//如果是其它浏览器,这句代码可以成功,ajax对象就拿到了
			ajax  = new XMLHttpRequest(); 
		} catch (e) {
			//如果是IE,上面肯定会报错,被抓取,就执行下面这句代码(IE支持)
			ajax = new ActiveXObject("Microsoft.XMLHTTP"); 
		}
		//拿到前台的用户名
		var username=document.getElementById("username").value;
		var pwd=document.getElementById("pwd").value;
		
		ajax.open("POST","/getUser",true);
		ajax.onreadystatechange =function(){
			
			if(ajax.readyState==4&&ajax.status==200){
				//后台都以字符串形式传到前台
			/*	if(ajax.responseText=="true"){
					
					document.getElementById("mySpan").innerHTML="<font color='red'>登录成功</font>";
				}else{
					document.getElementById("mySpan").innerHTML="<font color='green'>登录失败</font>";
				}
			}*/
				var jsonobj=eval("("+ajax.responseText+")");
				if(jsonobj.isEnable){
					document.getElementById("mySpan").innerHTML="<font color='red'>登录成功</font>";
				}else{
					document.getElementById("mySpan").innerHTML="<font color='green'>登录失败</font>";
				}
		}
	}
		//设置请求头信息
		ajax.setRequestHeader("Content-type","application/x-www-form-urlencoded");
		var parmet="username="+username+"&pwd="+pwd;
		alert(parmet);
		ajax.send(parmet);
		
	}	
	</script>
`

三、jQuery框架

jQuery:基于JavaScript的前端框架
特点:标签选择器、插件多、链式语法
jQuery操作:

1.引入jQuery依赖的js
jQuery依赖的js

2.jQuery的语法
jQuery写法jQuery写法$===jQuery
在这里插入图片描述

3.jQuery对象与dom对象
Dom对象:document.getElementById(“id”)
jQuery对象:$(“#id”)
在这里插入图片描述Dom对象与jQuery对象的转换
Dom---->jquery
$(domobj)
Jquery—>Dom
Jqueryobj[0]
在这里插入图片描述在这里插入图片描述

4.jQuery的选择器
1.id选择器
$("#id")当id重复时以第一个id有效
2.类选择器
$(".class")标签中有class相同都会被选中
在这里插入图片描述 3.元素选择器
$(“div”)所有div都效果
在这里插入图片描述 4.所有元素选择器
$("*")
5.多元素选择器
$(“div input”)
6.层选择器
$("#父标签 子标签") 对于父标签下的所有标签都有效

$("#book li")
	<ul id="book">
		<li>西游记</li>
		<li class="history">水许传</li>
		<li id="redDream">红楼梦</li>
		<li class="history">
			三国
			<ul>
				<li>魏</li>
				<li>蜀</li>
				<li>吴</li>
			</ul>
		</li>
	</ul>

在这里插入图片描述
$("#book >li")在给定元素匹配所有子元素

<ul id="book">
		<li>西游记</li>
		<li class="history">水许传</li>
		<li id="redDream">红楼梦</li>
		<li class="history">
			
		</li>
			<ul>
				<li>魏</li>
				<li>蜀</li>
				<li>吴</li>
			</ul>

	</ul>

在这里插入图片描述
7.$(“form+input”)表示form外面相邻的一个input
在这里插入图片描述
8. $(“form~input”)表示form同辈的所有input

5.jQuery里面的事件
jQuery事件写法:
1.注册事件KaTeX parse error: Expected 'EOF', got '#' at position 3: (“#̲id”).click(func…(“#id”).on(‘click’,function(){})
3.取消事件KaTeX parse error: Expected 'EOF', got '#' at position 3: (“#̲id”).off(“click…(“#id”).unbind(“click”)

6.案例:jQuery ajax二级联动
需求:需要在省份的选择同时刷新出对应身份城市的选择
思路:需要使用ajax请求和jQuery发送请求,json对象传输
步骤:
后台:1.将省份和城市封装在两个对象,且各自有通过id查询到地址的方法, 且城市的查询是通过省份的id 省份的id通过前台传来
2.将查询的数据,通过json对象传递到前台
前台:1.打开网页查询省份信息得到前台传来的省份数据
2.将省份的id通过jQuery的ajax请求传递到后台
3.得到城市数据显示出来

city:
在这里插入图片描述在这里插入图片描述省份:
在这里插入图片描述在这里插入图片描述servlet:
在这里插入图片描述在这里插入图片描述在这里插入图片描述

四、easyUI框架

esayui框架:基于jQuery的UI插件集合
特点:多插件,基于jQuery
easyUI操作:

1.引入easyUI依赖

<!-- easyui的样式主题文件 -->
<link rel="stylesheet" type="text/css" href="/easyui/themes/default/easyui.css">
<!-- easyui的系统图标-->   
<link rel="stylesheet" type="text/css" href="/easyui/themes/icon.css">
<!-- easyui依赖的jquery库-->   
<script type="text/javascript" src="/easyui/jquery.min.js"></script>
<!-- easyui的插件库-->      
<script type="text/javascript" src="/easyui/jquery.easyui.min.js"></script>
<!-- easyui的汉化包 -->
<script type="text/javascript" src="/easyui/locale/easyui-lang-zh_CN.js"></script>

在这里插入图片描述

2.组件三要素
属性、方法、事件
使用easyUI需要实现某个功能的时候:
1.找到对应的组件,在标签注册相应的组件功能 比如class=“easyui-tabs”
2.在找到相应的标签调用组件的方法或者属性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值