jQuery

jQuery简介

  jQuery是JavaScript和query的简写, jQuery 使得编写 JavaScript 更加简单。你可以只用写几行的jQuery 代码就能实现更多的东西( The Write Less, Do More)。 它是最常被用到的 JavaScript 库之一。
优点:
1、轻量级。核心文件オ几十kb,不会影响页面加载速度
2、跨浏览器兼容。基本兼容了现在主流的浏览器
3、链式编程、隐式迭代
4、对事件、样式、动画支持,大大简化了DOM操作
5、支持插件扩展开发。有着丰富的第三方的插件,例如树形菜单、日期控件、轮插图等
6、免费、开源
使用:使用时非常简单,只需下载jquery文件,使用一行代码引入即可。

<script src="jquery-1.11.0.js" type="text/javascript" charset="utf-8"></script>

jQuery易混方法区分

1、first和first-child
HTML结构:

<ul>
	<!--<p>11</p>-->
	<li>John</li>
	<li>Karl</li>
	<li>Brandon</li>
</ul>
<ul>
	<li>Glen</li>
	<li>Tane</li>
	<li>Ralph</li>
</ul>

JS代码:

<script src="jquery-1.11.0.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
	console.log($("ul li:first")); //只匹配一个元素
	//加入<p>11</p>之后,<li>John</li>的那个li,仍会选中
	//first只选中第一个元素
			
	console.log($("ul li:first-child")); // 为每个父元素匹配作为第一个子元素存在的集合
	//加入<p>11</p>之后,<li>John</li>的那个li不会选中,因为他不再是第一个子元素
	//<li>Glen</li>的那个li
</script>

2、even和odd
HTML结构:

<ul>
	<p>11</p>
	<p>12</p>
	<p>13</p>
	<li>John</li>
	<li>Karl</li>
	<li>Brandon</li>
</ul>
<ul>
	<li>Glen</li>
	<li>Tane</li>
	<li>Ralph</li>
</ul>

JS代码:

<script src="jquery-1.11.0.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
	console.log($("ul>li:even()"));
	//even表示选取索引值的偶数 0 2 4
	//第一个 第三个 第五个会显示红色背景
	$("ul>li:even()").css("background","red");	
</script>

3、empty和remove和detach
HTML结构:

<p>hahaha <span>span</span></p>

JS代码:

<script src="jquery-1.11.0.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
	/*
	// 1、empty()清空内部的东西,但元素仍保留
	$("p").empty(); //只剩一个<p></p>空标签
	*/
						
	/*
	// 2、remove() 删除掉该标签及该标签内的所有元素
	// 但不会从jQuery对象中删除,因而将来可再使用,但其绑定的事件、附加的数据会被删除
	$("span").click(function(){
		console.log("span被点击");
	})
	var $div = $("span").remove();
	$("p").append($div);
	//因为remove不保留状态,再点击时,控制台不会打印
	*/
			
	// 3、detach() 使用detach,仍会保留其状态,如绑定的事件等
	$("span").click(function(){
		console.log("span被点击");
	})
	var $div = $("span").detach();
	$("p").append($div);
	// detach之后,再添加,点击之后,控制台仍可打印span被点击
</script>

4、动画函数stop的几种使用
HTML结构

<input type="button" value="停止动画">
<div></div>

CSS样式

<style type="text/css">
	div{
		width: 100px;
		height: 100px;
		background: red;
	}
</style>

JS代码

<script src="jquery-1.11.0.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
	$(function(){
		// 页面加载之后,延时1s,执行两个动画函数
		$("div").delay(1000).animate({"width":"500px"},2000);
		$("div").animate({"height":"500px"},2000);
		$('input').click(function(){
				
			//$("div").stop(); // 停止当前动画,继续执行下次动画
			//$("div").stop(true); // 停止当前动画,清空动画序列,不再执行之后的动画
			$("div").stop(true,true); // 立即完成当前动画,清空动画序列,不再执行之后的动画
				
			//finish直接完成所有动画
			//$("div").finish();
		})
	})
</script>

5、on和bind事件处理
HTML结构

<div>
	<p>ppp</p>
	<input type="button" value="按钮" />
</div>

CSS结构

<style type="text/css">
	div{width: 100px;height: 100px;background: red;}
</style>

JS代码

<script type="text/javascript">
	// on支持事件委托 bind不支持事件委托
	$(function(){
		/*
		//给div绑定多个事件
		$("div").on("click mouseover",function(){
			console.log("div移入或者被点击");
		})
		//移除某个事件
		$("div").off("mouseover");
		*/
				
		/*$("div").on("click","input",function(){
			console.log("事件委托,当按钮被点击时起作用");
		})*/
				
		// hover 移入,移出
		$("div").hover(function(){
			$(this).css("background","green");
		},function(){
			$(this).css("background","blue");
		})
	});
</script>

6、currentTarget和target事件对象
HTML结构

<div>
	<input type="button" value="按钮" />
</div>

CSS结构

<style type="text/css">
	div{
		width: 100px;
		height: 100px;
		background: red;
	}
</style>

JS代码

<script src="jquery-1.11.0.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
	$(function(){
		// 当前事件源currentTarget为事件冒泡到哪个DOM对象上,哪个DOM对象就是当前事件源,会发生变化
				
		// 事件源target 为事件发生的DOM对象,尽管事件冒泡到别的DOM对象上,仍是那一个原本的事件源
				
		$("div").on("click",function(e){
			var evt = e || event;
			console.log("事件源"+evt.target["outerHTML"]);
					
			console.log("当前事件源"+evt.currentTarget["outerHTML"]);
			console.log("div点击事件");
		});
			
		$("input").on("click",function(e){
			var evt = e || event;
			console.log("事件源"+evt.target["outerHTML"]);
			console.log("当前事件源"+evt.currentTarget["outerHTML"]);
			console.log("input点击事件");
		});
				
	});
</script>

7、ajax实现jsonp的两种方式

<script src="jquery-1.11.0.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
	//跨域 使用$.getJSON
	$.getJSON("http://api.k780.com:88/?app=weather.future&weaid=zhengzhou&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json&jsoncallback=?",function(data){
		console.log(data);
	});
			
	// 使用 $.ajax实现jsonp的跨域,需设置dataType: "jsonp"
	$.ajax({
		type: "get",
		url: "http://api.k780.com:88/?app=weather.future&weaid=zhengzhou&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json&jsoncallback=?",
		dataType: "jsonp",
		success: function(data) {
			console.log(data);
		}
	});
</script>

jQuery实现全选,反选

HTML结构

全选:<input type="checkbox" id="checkAll"><br/>
反选:<input type="checkbox" id="checkOther">
<ul>
	<li><input type="checkbox"></li>
	<li><input type="checkbox"></li>
	<li><input type="checkbox"></li>
	<li><input type="checkbox"></li>
	<li><input type="checkbox"></li>
</ul>

JS代码

<script src="jquery-1.11.0.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
	$(function(){
		$("#checkAll").click(function(){
			$("li input").prop("checked",$(this).prop("checked"));
		});
				
		$("li input").click(function(){
			if($("li input:checked").length == $("li").length){
				$("#checkAll").prop("checked",true);
			}else{
				$("#checkAll").prop("checked",false);
			}
		});
				
		$("#checkOther").click(function(){
			$("li input").map(function(){
				$(this).prop("checked",!$(this).prop("checked"));
			})
		})
				
	})
</script>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值