jQuery(插件)

1.插件

    1.自定义插件
        ①$.extend
            【作用1】对象继承: $.extend(对象1,对象2)---->对象1继承对象2
            
            【作用2】扩展jQuery类方法:$.extend( {方法名:function(){ 方法体  } } )
  注意多个方法之间用逗号隔开
            
        ②$.fn.extend
            【作用】扩展jQuery对象方法:$.fn.extend( {方法名:function(){ 方法体  } } )
  注意多个方法之间用逗号隔开

            
    2.第三方插件
        ①表单验证
            插件名:jQuery Validation
            ②使用步骤
                【1】.下载jQuery插件验证库
                    jquery.validate.js
                【2】.将类库引入页面
                【3】.两种方式使用验证:
                        ①HTML标签属性方式
                    ②JS方式【推荐】
                                ①验证及错误信息:
                            $("表单元素").validate({
                                rules:{
                                 字段验证规则
                                    },
                                messages:{
                                字段错误信息
                                   }
                                })

                        ②错误样式:
                            表格元素  label.error{
                               样式
                            }
            ③验证规则说明
                见jQueryValidate规则.png
        


<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
		/* 设置错误信息的方式 */
			#formRegister label{
				color:red;
			}
		</style>
		<script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script>
		
		<!-- 倒入jQuery插件 表单验证 -->
		<script src="js/jquery.validate.js" type="text/javascript" charset="utf-8"></script>
		
		<script type="text/javascript">
			/* jQuery第五次课☞插件 */
			/*
			 * 区分java的类方法以及对象方法
			 * 	--类(静态)方法:例如DBHelper.getCon()
			 * 	--对象方法:StuDao sd = new StuDao(); sd.addStu();
			 * 
			 * $.each();  类方法
			 * $("#oDiv").show()  对象方法
			 * 
			 * 	$("#oDiv").each();  可以的
			 */

			$(function() {
				/* 一、自定义插件 */
				// $.extend();   $.fn.extend();
				
				
				
				//1.1 $.extend()实现对象继承
				//案例1:两个对象的继承
				// 定义一个人类对象,属性:name,sex
				// var person = {"name":"东方不败","sex":"女"};
				// var stu = {};
				// console.log($.type(stu));
				// console.log(stu);
				// // 通过$.extend();为stu继承person中的所有属性
				// $.extend(stu,person);
				// console.log(stu);
				
				// 涉及到三个参数
				// 第一个参数的对象会继承后面所有对象的属性。
				// var person = {"name":"东方不败","sex":"女"};
				// var stu = {"age":18};
				// var wjq = {};
				// console.log(person);
				// console.log(stu);
				// console.log(wjq);
				// console.log("------------------");
				// $.extend(wjq,stu,person);
				// console.log(person);
				// console.log(stu);
				// console.log(wjq);
				

				//1.2 $.extend()扩展jQuery类方法
				$.extend({
					// 此处可以通过键值对的形式创建jQuery的类方法  将来可以通过$直接调用
					"sb":function(){
						console.log("这是我自定义的类方法");
					},
					"nb":function(){
						console.log(123);
					}
				});
				
				// $.sb();
				// $.nb();$.extend();
				
				//案例2:求最大值(最小值)
				$.extend({
					// arguments参数 类似一个数组,存储参数的个数
					// 扩展求最大值的类方法
					"myMax1":function(a,b){
						return a>b?a:b;
					},
					"myMax2":function(){
						// console.log(arguments.length);
						// 打擂台的思想
						var max = arguments[0];//假设这个arguments数组中的第一个值为最大值
						// console.log(arguments[0]);
						for(var i = 0;i<arguments.length;i++){
							if(max < arguments[i]){
								max = arguments[i];
							}
						}
						return max;
					},
					"myMin":function(){
						// console.log(arguments.length);
						// 打擂台的思想
						var min = arguments[0];//假设这个arguments数组中的第一个值为最大值
						// console.log(arguments[0]);
						for(var i = 0;i<arguments.length;i++){
							if(min > arguments[i]){
								min = arguments[i];
							}
						}
						return min;
					}
				});
				// console.log($.myMax2(12,2,3,56));
				// console.log($.myMax2(1));
				// console.log($.myMax2());
				// console.log($.myMax2(1,2,3,4,5,6,6,7));
				// console.log($.myMin(22,3,2));
				
				

				//1.3 $.fn.extend()扩展jQuery对象方法
				//案例3:实现全选效果
				
				$.fn.extend({
					// 扩展jQuery对象方法
					"mydemo":function(){
						console.log("这是jQuery对象方法");
						// alert(123);
					}
				})
				// 如何调用jQuery对象方法
				// $.fn.extend() 存储在加载函数内  作用域
				// $.fn.mydemo();
				// console.log($("#oDiv").mydemo());
				
			
			
				$.fn.extend({
					// 全选的对象方法
					"demo1":function(){
						// 在对象方法中,$(this)代表将来谁调用了,就代表谁
						// console.log($(this));
						// $(this).each(function(){
						// 	$(this).prop("checked",true);
						// });
						// jQuery的特性中有一个隐式迭代器
						$(this).prop("checked",true);
					},
					"demo2":function(){
						$(this).prop("checked",false);
					}
				});
			
				
				$("#checkall").click(function(){
					// 通过获取到复选框  然后调用对象方法demo1 设置所有复选框选中
					$("input:checkbox").demo1();
				});
				$("#qxcheckall").click(function(){
					// 通过获取到复选框  然后调用对象方法demo1 设置所有复选框选中
					$("input:checkbox").demo2();
				});
				

			})
			
			
			/* 二、第三方插件:表单验证插件 */
			//案例4:表单验证(用户名、密码、确认密码、年龄、邮箱、网址url)
			$(function(){
				
				// 获取表单标签调用插件激活的方法
				$("#formRegister").validate({
					// 插件的使用:2个模块,规则模块,错误信息模块
					rules:{
						// 账号必须有,不能为空
						username:{
							required:true,
							minlength:10
						},
						email:{
							required:true,
							email:true
						}
					},
					// 编写自定义错误信息
					messages:{
						// 账号必须有,不能为空
						username:{
							required:"账号不能为空",
							minlength:"账号必须10以上"
						},
						email:{
							required:"必填",
							email:"邮箱格式不正确"
						}
					}
				});
			});
		</script>
	</head>
	<body>
		<button id = "oDiv">按钮</button>
		
		<h2>案例3:自定义插件实现全选功能</h2>
		<button id="checkall">全选</button>
		<button id="qxcheckall">取消全选</button>
		<input type="checkbox" value = "1">1
		<input type="checkbox" value = "2">2
		<input type="checkbox" value = "3">3
		<input type="checkbox" value = "4">4
		<input type="checkbox" value = "5">5
		
		<h2>案例4:使用jQuery validation插件完成表单验证</h2>
		
		<form id="formRegister" action="index.html" method = "get">
			
			账号:<input type="text" name = "username">
			<br>
			密码 <input type="password" name = "password"/>
			<br>
			邮箱 <input type="text" name = "email">
			<br>
			<!-- 网上 搜索日期插件 -->
			<input type="date">
			<br>
			<input type="submit" value = "注册">
		</form>
		
		
		
		
		
	</body>
</html>

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值