JQuery入门之each方法与插件机制

each(fn)与each(object, [fn])

  1. each([fn]):每个匹配的元素都会执行该函数。
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript" src="js/jquery-3.3.1.js" ></script>
	</head>
	<body>
		<input type="checkbox" name="hobby" value="1" />足球
		<input type="checkbox" name="hobby" value="2" />篮球
		<input type="checkbox" name="hobby" value="3" />羽毛球
		
		
		<script>
			$("[name='hobby']").each(function(){//直接通过JQuery对象调用each方法,来遍历该对象内的所有元素
				console.log(this);//此处this为 DOM 对象而非 jQuery 对象
			});
		</script>
	</body>
</html>

结果:
在这里插入图片描述

  1. each(object, [fn]):用于遍历对象(可以是jQuery对象)和数组,其中object表示待遍历的jQuery对象或数组;fn表示每个成员/元素执行的回调函数。
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript" src="js/jquery-3.3.1.js" ></script>
	</head>
	<body>
		<input type="checkbox" name="hobby" value="1" />足球
		<input type="checkbox" name="hobby" value="2" />篮球
		<input type="checkbox" name="hobby" value="3" />羽毛球
		
		<script>
			//第一个参数为遍历元素的下标,第二个为遍历
			$.each(['Tom','Jim','Make'], function(i,value){//遍历数组
				console.log(i+":"+value);
			});
			$.each($("[name='hobby']"), function() {//遍历JQuery对象
				console.log(this);
			});
		</script>
	</body>
</html>

结果:
在这里插入图片描述

  1. each(callback)与each(object, [callback])区别总结:
    1. 调用对象不同:前者必须使用jQuery对象调用;后者只能使用$调用;
    2. 遍历对象不同:前者遍历的是jQuery对象;后者还可以遍历数组等非jQuery对象

插件机制

  1. $.extend(对象):扩展jQuery对象本身,主要是用来扩展jQuery全局函数 ,调用时直接$.函数名(参数)。
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript" src="js/jquery-3.3.1.js" ></script>
	</head>
	<body>
		<script>
			//传入一个对象,对象中的函数便会扩展为JQuery中的全局函数
			$.extend({
				min:function(a,b){
					return a<b?a:b;
				},
				max:function(a,b){
					return a>b?a:b;
				},
			});
			
			var min = $.min(1,2);
			console.log(min);
			var max = $.max(1,2);
			console.log(max);
		</script>
	</body>
</html>

结果:
在这里插入图片描述

  1. $.fn.extend(对象):扩展 jQuery 元素集,主要用于扩展jQuery插件,调用时需要先创建jQuery对象,然后才能调用相应的函数。
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript" src="js/jquery-3.3.1.js" ></script>
	</head>
	<body>
		
		<input />
		
		<script>
			//传入一个对象,对象中的函数便会扩展为JQuery中的全局函数
			$.fn.extend({
				min:function(a,b){
					return a<b?a:b;
				},
				max:function(a,b){
					return a>b?a:b;
				},
			});
			//必须通过一个JQuery对象来调用函数
			var min = $("input").min(1,2);
			console.log(min);
			var max = $("input").max(1,2);
			console.log(max);
		</script>
	</body>
</html>

结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值