jQuery 中的 省级联动 原理易懂 极其简单(年月日为例)

jQuery 中的 省级联动 原理易懂 极其简单(年月日为例)

省:一维数组

市:二维数组

乡:三维数组

例子:

<!DOCTYPE html>
<html>

	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<meta name="keywords" content="jQuery, 省级联动" />
		<title>jQuery 中的 省级联动  原理易懂 极其简单</title>
	</head>

	<body>
		<select id="selProvince">
			<option>--请选择--</option>
		</select>
		<select id="selCity">
			<option>--请选择--</option>
		</select>
		<select id="selCountryside">
			<option>--请选择--</option>
		</select>
		
		<script type="text/javascript" src="js/jquery-3.3.1.min.js"></script>
		<script>
			var month = new Array();
			for(var i = 0; i <= 11; i++) {
				month[i] = (i + 1).toString();
			}
			var typeOne = new Array();
			for(var i = 0; i <= 27; i++) {
				typeOne[i] = (i + 1).toString();
			}
			var typeTwo = new Array();
			for(var i = 0; i <= 28; i++) {
				typeTwo[i] = (i + 1).toString();
			}
			var typeThree = new Array();
			for(var i = 0; i <= 29; i++) {
				typeThree[i] = (i + 1).toString();
			}
			var typeFour = new Array();
			for(var i = 0; i <= 30; i++) {
				typeFour[i] = (i + 1).toString();
			}
			
			//省
			var provinceYear = ["2019", "2020", "2021", "2022", "2023"];
			
			//市
			var cityMonth = new Array(5);
			for(var i = 0; i < 5; i++) {
				cityMonth[i] = month;
			}
			
			//村
			var countrysideDay = new Array(5);

			for(var i = 0; i < 5; i++) {
				countrysideDay[i] = new Array(12);
				for(var j = 0; j < 12; j++) {
					switch(j) {
						case 1:
							if(parseInt(provinceYear[i]) % 100 != 0 && parseInt(provinceYear[i]) % 4 == 0) {
								countrysideDay[i][j] = typeTwo
							} else {
								countrysideDay[i][j] = typeOne
							}
							break;
						case 3:
						case 5:
						case 8:
						case 10:
							countrysideDay[i][j] = typeThree
							break;
						default:
							countrysideDay[i][j] = typeFour
							break;
					}
				}
			}
			
			for(var i = 0; i < provinceYear.length; i++) {
				$("#selProvince").append("<option>" + provinceYear[i] + "</option>");
			}
			//根据省遍历市
			$("#selProvince").change(function() { //点击xx省的时候触发时事件
				$("#selCity").children("option").not(":eq(0)").remove(); //清空市
				$("#selCountryside").children("option").not(":eq(0)").remove(); //清空县
				indexProvinceCity = parseInt($(this).children("option:selected").index()); //获取省索引
				if(indexProvinceCity > 0) {
					var city = cityMonth[indexProvinceCity - 1]; //让市的索引从 当前省的索引-1开始遍历
					for(var j = 0; j < city.length; j++) {
						$("#selCity").append("<option>" + city[j] + "</option>");
					}
				}
			});
			//根据市遍历县
			$("#selCity").change(function() {
				$("#selCountryside").children("option").not(":eq(0)").remove(); //只需清除县,
				indexCityCountrysideDay = parseInt($(this).children("option:selected").index()); //获取市的索引
				if(indexCityCountrysideDay > 0) {
					var countryside = countrysideDay[indexProvinceCity - 1][indexCityCountrysideDay - 1]; //根据省找到市,在根据市找打县,再遍历
					for(var j = 0; j < countryside.length; j++) {
						$("#selCountryside").append("<option>" + countryside[j] + "</option>");
					}
				}
			});
		</script>
	</body>

</html>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值