欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

jQuery

程序员文章站 2024-03-05 20:29:19
...

jQuery遍历

传统遍历

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			/**
			 * 传统形式遍历
			 */
			window.onload = function(){
				//dom对象获取所有的标签option
				var options = document.getElementsByTagName("option");
				for(var i=0;i<options.length;i++){
					alert(options[i].innerHTML);  //dom
				}
			}
			
		</script>
	</head>
	<body>
		<select>
			<option>北京</option>
			<option>上海</option>
			<option>广州</option>
			<option>深圳</option>
		</select>
	</body>
</html>

上面用的是dom循环

jQuery对象遍历

jQuery对象调用函数each

$("").each( 自己定义的函数 回调函数 )

回调函数 : 函数是自己定义的,但不是自己调用

<script type="text/javascript">
			$(function(){
				//jQuery方式获取option标签
				var $option = $("option");
				//jQuery对象调用函数each
				/**
				 *  匿名函数,回调函数
				 *  each函数调用
				 *  参数: 索引, 遍历到的元素
				 *  each遍历数组,遍历一次调用一次匿名函数
				 */
				$option.each(function(index,element){
					//alert(index+"==="+element);
					//jQuery对象本质数组,遍历的元素DOM对象
					alert(  $(element).html()  );  //Jquery
				});
			});
</script>

jQuery循环 

jQuery全局函数each遍历

jQuery框架定义函数,each

不需要jQuery对象调用, $调用的

参数为被遍历对象,既可以是jQuery对象$option,也可以为DOM对象options

$.each()

<script type="text/javascript">
			$(function(){
				//jQuery方式获取option标签
				var $option = $("option");
				
				var options = document.getElementsByTagName("option");
				
				//jQuery符号$直接调用全局函数each
				/**
				 * 全局函数each的参数
				 * 被遍历的对象
				 * 回调函数,传递索引和元素
				 * 好处: 遍历的容器可以是jQuery对象,也可以是DOM对象
				 */
                                      //也可以填$option
				$.each(options, function(index,element) {
					alert( $(element).html());
				});
			});
</script>

 

jQuery的事件

jQuery绑定事件,事件名字没有on

常用事件:

  • click 点击事件
  • blur 失去焦点
  • change 内容改变
  • keyup 键盘弹起
  • mouseover 鼠标悬停
  • mouseout 鼠标离开

DOM对象绑定事件

<script type="text/javascript">
	window.onload = function(){
		//获取按钮
		var btn = document.getElementById("btn");
		//DOM对象的事件属性
		btn.onclick  = function(){
		alert("按钮被点击");
		}
	}
</script>

绑定id为btn的标签。

jQuery对象绑定事件

jQuery对象中函数,实现对一个事件源同时绑定多个事件

bind函数,实现绑定事件

	<script type="text/javascript">
		   $(function(){
		   	 //获取按钮,jQuery对象调用函数 bind
		   	 /*$("#btn").bind("click",function(){
		   	 	alert("按钮被点击");
		   	 });*/   	
		   	/*
		   	 * 函数bind同时绑定多个事件
		   	 * bind( {
		   	 * 	 "事件类型":function(){},
		   	 *   "事件类型":function(){}
		   	 * } );
		   	 */
		   	$("#btn").bind({
                                //点击事件
		   		"click":function(){
		   			alert("绑定点击事件");
		   		},
                                //悬停事件
		   		"mouseover":function(){
		   			alert("绑定鼠标悬停事件");
		   		}
		   	}); 	
		 });
	</script>

同样绑定id为btn的标签。 

jQuery解绑事件

jQuery对象的函数 unbind

<script type="text/javascript">
		$(function(){
			$("#btn").bind({
				"click":function(){alert("点击事件")},
				"mouseover":function(){alert("鼠标悬停")}
			});
			//解绑
			$("#unbtn").click(function(){
				//解除按钮btn的事件绑定
				//unbind()什么参数不传递,解除所有事件
				//$("#btn").unbind();
				
				//解除点击事件
				//$("#btn").unbind("click");
					
				//解除多个事件
				$("#btn").unbind("click mouseover");
			})
		});
</script>

validate表单验证插件

插件:

基于一个功能开发的另一个功能,插件

validate基于jQuery开发的一个功能,表单验证功能

对原有的jQuery功能进行扩展,插件不能独立使用

D:\BaiduNetdiskDownload\19年JAVA课件\03_javaweb\day15_jQuery基础\课程资料\JavaWeb10\jquery-validation-1.9.0

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>jQuery validation plug-in - main demo</title>

<link rel="stylesheet" type="text/css" media="screen" href="css/screen.css" />

<script src="../lib/jquery.js" type="text/javascript"></script>
<script src="../jquery.validate.js" type="text/javascript"></script>

<script type="text/javascript">
$(function() {
	// validate signup form on keyup and submit
	$("#signupForm").validate({
                                // 规则
		rules: {
			firstname: "required",      //必填不限长度
			lastname: "required",
			username: {
                                // 必填
				required: true,     //限定长度
				minlength: 2
			},
			password: {
				required: true,
				minlength: 5
			},
			confirm_password: {
				required: true,
				minlength: 5,
				equalTo: "#password"   # 是否和上一个输入的密码一样
			},
			email: {
				required: true,
				email: true
			},
			topic: {
				required: "#newsletter:checked",
				minlength: 2
			},
			agree: "required"
		},
                                // 消息
		messages: {
			firstname: "Please enter your firstname",
			lastname: "Please enter your lastname",
			username: {
				required: "Please enter a username",
				minlength: "Your username must consist of at least 2 characters"
			},
			password: {
				required: "Please provide a password",
				minlength: "Your password must be at least 5 characters long"
			},
			confirm_password: {
				required: "Please provide a password",
				minlength: "Your password must be at least 5 characters long",
				equalTo: "Please enter the same password as above"
			},
			email: "Please enter a valid email address",
			agree: "Please accept our policy"
		}
	});

	// propose username by combining first- and lastname
});
</script>

<style type="text/css">
#commentForm { width: 500px; }
#commentForm label { width: 250px; }
#commentForm label.error, #commentForm input.submit { margin-left: 253px; }
#signupForm { width: 670px; }
#signupForm label.error {
	margin-left: 10px;
	width: auto;
	display: inline;
}
#newsletter_topics label.error {
	display: none;
	margin-left: 103px;
}
</style>
</head>
<body>
<div id="main">
<form class="cmxform" id="signupForm" method="get" action="">
	<fieldset>
		<legend>Validating a complete form</legend>
		<p>
			<label for="firstname">Firstname</label>
			<input id="firstname2" name="firstname" />
		</p>
		<p>
			<label for="lastname">Lastname</label>
			<input id="lastname" name="lastname" />
		</p>
		<p>
			<label for="username">Username</label>
			<input id="username" name="username" />
		</p>
		<p>
			<label for="password">Password</label>
			<input id="password" name="password" type="password" />
		</p>
		<p>
			<label for="confirm_password">Confirm password</label>
			<input id="confirm_password" name="confirm_password" type="password" />
		</p>
		<p>
			<label for="email">Email</label>
			<input id="email" name="email" type="email" />
		</p>
		<p>
			<label for="agree">Please agree to our policy</label>
			<input type="checkbox" class="checkbox" id="agree" name="agree" />
		</p>
		<p>
			<input class="submit" type="submit" value="Submit"/>
		</p>
	</fieldset>
</form>
</div>
</body>
</html>

效果:

jQuery

自定义验证规则

标准语法规则, jQuery选择符号$调用插件属性validator

属性调用插件函数 addMethod()

参数:

  • 规则名
  • 回调函数
 <script type="text/javascript">
        	
        	/*
        	 * 匿名函数中具有三个参数
        	 * value   : 文本框输入的值
        	 * element : 文本框标签对象
        	 * param   : 规则后面的参数   range:[5,10]
        	 */
        	//自定义身份证号的15位规则
        	$.validator.addMethod("cart15",function(value,element,param){
        		//文本框输入的值 value判断
        		if(value.length==18)
        		  return true;
        		//定义15位规则,全数字
        		var reg=/^[0-9]{15}$/;
        		
        		return reg.test(value);
        	});
        	
        	//自定义身份证号的是18位规则
        	$.validator.addMethod("cart18",function(value,element,param){
        		 if(value.length==15)
        		   return true;
        		//定义18位规则,前17个数字,最后一位可以是数字,可以是X
        		var reg = /^[0-9]{17}[0-9X]{1}$/;
        		
        		return reg.test(value);
        	});
        	
        	//自定义身份证的长度规则
        	$.validator.addMethod("cartlength",function(value,element,param){
        		if(value.length == 15 || value.length==18)
        			return true;
        		return false;	
        	});

 

规则已在函数中写明,下面是违反规则后的提示信息。 

//身份证号规则
cart:{
    required:"必须填写身份证号",
    cartlength:"身份证号码长度只能是15或18位",
    cart15:"15位格式全数字",
    cart18:"18位格式全数字,最后一位可以是X"
}