JQuery实现省市联动

                                              JQuery实现省市联动

一:JQuery简介:

jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架)。jQuery设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。

jQuery的核心特性可以总结为:具有独特的链式语法和短小清晰的多功能接口;具有高效灵活的css选择器,并且可对CSS选择器进行扩展;拥有便捷的插件扩展机制和丰富的插件。jQuery兼容各种主流浏览器,如IE 6.0+、FF 1.5+、Safari 2.0+、Opera 9.0+等

二:JQuery实现省市联动的步骤分析:

第一步:确定事件(chang事件),在绑定的函数里面获取用户选择的省份。

第二步:创建二维数组来存储省份和城市。

第三步:遍历二维数组中的省份(与用户选择的省份进行比较)。

第四步:判断用户选择的省份和遍历的城市。

第五步:接着遍历数组中的城市。

第六步:创建一个城市文本节点。

第七步:创建一个option元素节点。

第八步:将文本节点添加到元素节点中(使用JQ的文档操作方法)。

第九步:获取第二个下拉列表并将option元素节点添加进去。

第十步:清除第二个下拉列表中的option内容。

三:技术分析:

1:数组遍历

2:文档操作:

3:清除操作:

四:示例代码实现:

//一定提前要将jquery库导进去
<script type="text/javascript" src="../js/jquery-1.11.0.js"></script>
		<script>
			$(function(){
				//2.创建二维数组存储省份和城市
				var cities=new Array(3);
				cities[0] = new Array("武汉市","黄冈市","襄阳市","荆州市");
				cities[1] = new Array("长沙市","郴州市","株洲市","岳阳市");
				cities[2] = new Array("石家庄市","邯郸市","廊坊市","保定市");
				cities[3] = new Array("郑州市","洛阳市","开封市","安阳市");
				//当元素的值改变时发生 change 事件(仅适用于表单字段)。
                //change() 方法触发 change 事件,或规定当发生 change 事件时运行的函数。
                //注意:当用于 select 元素时,change 事件会在选择某个选项时发生。
                //当用于 text field 或 text area 时,change 事件会在元素失去焦点时发生。
                $("#province").change(function(){
                	//10.清除第二个下拉列表的内容
                	$("#city").empty();
                	//1:获取用户选择省份
                	var val=this.value;
                	//3:遍历二维数组中的省份
                	$.each(cities,function(i,n) {
                		//4.判断用户选择的省份和遍历省份
                		if(val==i){
                			//5.遍历改省份下的所有城市
                			$.each(cities[i],function(j,m){
                				//6.创建城市文本节点
                				var textnode=document.createTextNode(m);
                				//7.创建option元素节点
                				var opel=document.createElement("option");
                				//8.将城市文本节点添加到option元素节点中去
                				opel.append(textnode);
                				//9.将option元素节点追加到第二个下拉列表
                				$(opel).appendTo($("#city"));
                			});
                		}
                	});
                });
			});
		</script>

五:完整代码实现:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<title>使用jQuery完成省市二级联动</title>
		<style type="text/css">
			#bottom{
				text-align: center;
			}
			#contanier{
				border: 1px solid red;
				width: 99%;
				height: 600px;
				position: relative;
			}
			#content{
				border: 5px solid gray;
				width: 50%;
				height: 60%;
				position: absolute;
				top: 100px;
				left: 300px;
				background-color: white;
				padding-top: 50px;
			}
		</style>
		<script type="text/javascript" src="../js/jquery-1.11.0.js"></script>
		<script>
			$(function(){
				//2.创建二维数组存储省份和城市
				var cities=new Array(3);
				cities[0] = new Array("武汉市","黄冈市","襄阳市","荆州市");
				cities[1] = new Array("长沙市","郴州市","株洲市","岳阳市");
				cities[2] = new Array("石家庄市","邯郸市","廊坊市","保定市");
				cities[3] = new Array("郑州市","洛阳市","开封市","安阳市");
				//当元素的值改变时发生 change 事件(仅适用于表单字段)。
                //change() 方法触发 change 事件,或规定当发生 change 事件时运行的函数。
                //注意:当用于 select 元素时,change 事件会在选择某个选项时发生。
                //当用于 text field 或 text area 时,change 事件会在元素失去焦点时发生。
                $("#province").change(function(){
                	//10.清除第二个下拉列表的内容
                	$("#city").empty();
                	//1:获取用户选择省份
                	var val=this.value;
                	//3:遍历二维数组中的省份
                	$.each(cities,function(i,n) {
                		//4.判断用户选择的省份和遍历省份
                		if(val==i){
                			//5.遍历改省份下的所有城市
                			$.each(cities[i],function(j,m){
                				//6.创建城市文本节点
                				var textnode=document.createTextNode(m);
                				//7.创建option元素节点
                				var opel=document.createElement("option");
                				//8.将城市文本节点添加到option元素节点中去
                				opel.append(textnode);
                				//9.将option元素节点追加到第二个下拉列表
                				$(opel).appendTo($("#city"));
                			});
                		}
                	});
                });
			});
		</script>
	</head>
	<body>
		<div>
			<div id="contanier">
				<div id="content">
					<table border="1" align="center" cellpadding="0" cellspacing="0" width="70%" height="70%" bgcolor="white">
						<form method="get" action="#" onsubmit="return checkForm()">
						<tr>
							<td colspan="2" align="center">
								<font size="5">会员注册</font>
							</td>
							
						</tr>
						<tr>
							<td>
								用户名
							</td>
							<td>
								<input type="text" name="username" id="username" onfocus="showTips('username','必须以字母开头')" onblur="check('username','用户名不能为空')" /><span id="usernamespan"></span>
							</td>
						</tr>
						<tr>
							<td>密码</td>
							<td>
								<input type="password" name="password" id="password" onfocus="showTips('password','密码长度不能低于6位!')" onblur="check('password','密码不能为空!')" /><span id="passwordspan"></span>
							</td>
						</tr>
						<tr>
							<td>确认密码</td>
							<td>
								<input type="password" name="repassword" />
							</td>
						</tr>
						<tr>
							<td>email</td>
							<td>
								<input type="text" name="email" id="email" />
							</td>
						</tr>
						<tr>
							<td>姓名</td>
							<td>
								<input type="text" name="name" />
							</td>
						</tr>
						<!--1.编写HTML文件部分的内容-->
						<tr>
							<td>籍贯</td>
							<td>
								<!--2.确定事件,通过函数传参的方式拿到改变后的城市-->
								<select id="province">
									<option>--请选择--</option>
									<option value="0">湖北</option>
									<option value="1">湖南</option>
									<option value="2">河北</option>
									<option value="3">河南</option>
								</select>
								<select id="city">
									
								</select>
							</td>
						</tr>
						<tr>
							<td>性别</td>
							<td>
								<input type="radio" name="sex" value="男"/>男
								<input type="radio" name="sex" value="女"/>女
							</td>
						</tr>
						<tr>
							<td>出生日期</td>
							<td>
								<input type="text" name="birthday" />
							</td>
						</tr>
						<tr>
							<td>验证码</td>
							<td>
								<input type="text" name="yanzhengma" />
								<img src="../img/yanzhengma.png" />
							</td>
						</tr>
						<tr>
							<td colspan="2">
								<input type="submit" value="注册" />											
							</td>
						</tr>
						</form>
					</table>
				</div>
			</div>
		</div>
	</body>
</html>

验证结果:

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值