js,jquery实现省市联动

最近学习js和jquery,做了这个小功能,感觉比较实用。
主要知识点是一些js和jquery常用的函数 和 对dom的操作。

<!DOCTYPE html>
<html>
//原生js实现
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			//定义一个城市二维数组
			var provinces = [
				["深圳市", "东莞市", "惠州市", "广州市"],
				["长沙市", "岳阳市", "株洲市", "湘潭市"],
				["厦门市", "福州市", "漳州市", "泉州市"]
			];
			
			
			//先判断选的是第几个名字,获取相应的数组,将数组遍历关联到列表框上
			function bian() {
				//获取第一个下拉列表框选中option的值
				var a = document.getElementById("sheng").value;
				//根据取到的值选择数组
				var city = provinces[a];
				//获取市的下拉列表框
				var sel = document.getElementById("shi");
				//清空市列表框的options
				//如果不清空列表框的options,第二个下拉列表框会一直在原来的基础上加
				sel.options.length = 0;
				for(var i = 0; i < city.length; i++) {
					//获取城市元素
					var cityText = city[i];
					//创建option节点
					var option1 = document.createElement("option"); // <option></option>
					//创建城市文本节点
					var textNode = document.createTextNode(cityText); // 东莞市
					//将option节点和文本内容关联起来
					option1.appendChild(textNode); //<option>东莞市</option>
					//添加到城市select中,在select后追加一个option
					sel.appendChild(option1);

				}
			}
		</script>
	</head>

	<body>
		<select name="" id="sheng" onchange="bian()">
			<option value="-1">请选择</option>
			<option value="0">广东省</option>
			<option value="1">湖南省</option>
			<option value="2">福建省</option>
		</select>
		<select id="shi"></select>
	</body>

</html>
<!DOCTYPE html>
<html>
//jquery实现
	<head>
		<meta charset="UTF-8">
		<title></title>
		<!--
        	引入jquery文件
        -->
		<script src="js/jquery-1.11.0.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			//初始化城市数组
			var a = [
				["深圳市", "东莞市", "惠州市", "广州市"],
				["长沙市", "岳阳市", "株洲市", "湘潭市"],
				["厦门市", "福州市", "漳州市", "泉州市"]
			];

			$(function() {
				//定义SELECT改变的监听函数
				//change函数当用于 select 元素时,change 事件会在选择某个选项时发生
				$("#app").change(function() {
					//取出对应的城市数组
					//this指向$("#app")
					//也可以理解为var c = a[$("#app").val()];
					var c = a[this.value];
					//清空下拉列表框的值
					$("#app1").empty();
					//取数组的值,each函数遍历数组,i为索引,n为值
					$(c).each(function(i, n) {
						//添加到下拉列表框app里
						$("#app1").append("<option>" + n + "</option>")
					})
				})

			})
		</script>
	</head>

	<body>
		<select id="app">
			<option value="-1">请选择</option>
			<option value="0">吴超</option>
			<option value="1">好好</option>
			<option value="2">学习</option>
		</select>
		<select id="app1">

		</select>
	</body>

</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值