jQuery 扩展机制

jQuery中的函数虽然很全,但并不是我们需要的每一个函数在jQuery中都能找到,如果没有的话就需要我们自己手动定义;因此这篇博客就介绍下jQuery扩展的两种方法;

jQuery.extend()

直接扩展,采用 $.函数名 调用方法,不需要引用对象(既是优点也是缺点)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script src="js/jquery-3.3.1.js"></script>
	</head>
	<body>
		<script>
			jQuery.extend({
				min:function(a,b){
					return a>b?b:a;
				},
				max:function(a,b){
					return a>b?a:b;
				}	
			})
			console.log($.max(1,2));
			console.log($.min(1,2));
		</script>	
	</body>
</html>

jQuery.extend() 添加函数的形式和初始化式创建对象一样,采用 key:value 的形式,各函数之间用逗号隔开;前者是函数名,后者是方法;在上例中我们就定义了两个函数,分别是计算输出(在控制台输出)最大值和最小值;调用结果如下:

jQuery.fn.extend()

该形式添加的函数与上面的函数不同的是该形式添加的函数使用时是和对象绑定的,和对象一起使用,例子如下;

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script src="js/jquery-3.3.1.js"></script>
	</head>
	<body>
		<form>
			<input type="checkbox" name="hobby" value="1" />篮球
			<input type="checkbox" name="hobby" value="2" />足球
			<input type="checkbox" name="hobby" value="3" />网球
			<input type="checkbox" name="hobby" value="4" />铅球
			
			<input type="button" onclick="test()" value="已选择框的值" />
		</form>
		<script>
			function test(){
				var element= $("[name='hobby']").values();
				alert(element);
			}
			jQuery.fn.extend({
				values:function(){
					var numbers="";
					this.each(function(){
						if(this.checked){
							numbers=numbers+","+this.value;
						}
					})
					numbers=numbers==""?numbers:numbers.substr(1);
					return numbers;
				}
			})
		</script>
	</body>
</html>

这里以显示多选框中被选中的选项的 value 值为例;先定义一个具有四个选项的多选,然后使用jquery.fn.exetend() 定义一个函数 values();该函数的作用是找出被选中的选项,将被选中的选项的value值添加到字符串 numbers 中,然后返回 numbers;很简单的一个函数;然后再定义 一个方法test() 调用该函数,并在提示框内显示该函数的返回值;点击按钮,效果如下:

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值