jQuery实现省级联动效果——源码

news/2024/7/10 23:38:05 标签: 省级联动, jQuery

一、效果图

这里写图片描述

二、index.html

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>jQuery实现省级联动</title>
	</head>
	<body>
		
		<div>
			<select id="province" name="province">
				<option value="">--请选择--</option>
			</select>省
			<select id="city" name="city">
				<option value="">--请选择--</option>
			</select>市
			<select id="district" name="district">
				<option value="">--请选择--</option>
			</select>区/县

		</div>

		<script type="text/javascript" src="js/data.js" ></script>
		<script type="text/javascript" src="js/jquery-1.12.4.min.js" ></script>
		
		<script>
			
			$(document).ready(function(){
				var $province = $("#province");
				var $city = $("#city");
				var $district = $("#district");
				var option = "";
				// 默认禁用城市和区县乡下拉框
				$city.attr("disabled", true);//属性设置为true和disabled都可以
				$district.attr("disabled", "disabled");
				
				/*
				 * 加载所有省份
				 */
				for (var i = 0; i < proviceJson.length; i++) {
					option += "<option value=\""+i+"\">"+proviceJson[i].name+"</option>"
				}
				$province.append(option);
				
				/*
				 * 根据省份获取城市
				 */
				$province.change(function() {
					option = "<option value=''>--请选择--</option>";
					// 激活城市下拉框
					$city.attr("disabled", false);
					// 清空城市下拉框
					$city.empty();
					// 清空区县乡下拉框,并添加默认"--请选择--"选项
					$district.empty();
					$district.append(option);
					// 获取省份下的城市数组
					var proVal = $(this).val();
					var cityArr = proviceJson[proVal].city;
					for (var i = 0; i < cityArr.length; i++) {
						option += "<option value=\""+i+"\">"+cityArr[i].name+"</option>"
					}
					$city.append(option);
				});
				
				
				/*
				 * 根据城市获取区县乡
				 */
				$city.change(function() {
					// 激活区县乡下拉框
					$district.attr("disabled", false);
					// 获取城市下的区县乡数组
					var proVal = $province.val();
					var cityVal = $(this).val();
					var districtArr = proviceJson[proVal].city[cityVal].districtAndCounty;
					option = "";
					for (var i = 0; i < districtArr.length; i++) {
						option += "<option value=\""+i+"\">"+districtArr[i]+"</option>"
					}
					$district.append(option);
				});
				
			});
			
		</script>
		
	</body>
</html>

三、data.js(模拟数据)

var proviceJson = [{
	name: "北京市",
	city: [{
		name: "北京市",
		districtAndCounty: ["东城区", "西城区", "崇文区", "宣武区", "朝阳区", "丰台区", "石景山区", "海淀区", "门头沟区", "房山区", "通州区", "顺义区", "昌平区", "大兴区", "怀柔区", "平谷区", "密云县", "延庆县", "延庆镇"]
	}]
}, {
	name: "重庆市",
	city: [{
		name: "重庆市",
		districtAndCounty: ["渝中区", "大渡口区", "江北区", "沙坪坝区", "九龙坡区", "南岸区", "北碚区", "万盛区", "双桥区", "渝北区", "巴南区", "万州区", "涪陵区", "黔江区", "长寿区", "合川市", "永川区市", "江津市", "南川市", "綦江县", "潼南县", "铜梁县", "大足县", "荣昌县", "璧山县", "垫江县", "武隆县", "丰都县", "城口县", "梁平县", "开县", "巫溪县", "巫山县", "奉节县", "云阳县", "忠县", "石柱土家族自治县", "彭水苗族土家族自治县", "酉阳土家族苗族自治县", "秀山土家族苗族自治县"]
	}]
}, {
	name: "河北省",
	city: [{
		name: "石家庄市",
		districtAndCounty: ["长安区", "桥东区", "桥西区", "新华区", "裕华区", "井陉矿区", "辛集市", "藁城市", "晋州市", "新乐市", "鹿泉市", "井陉县", "微水镇", "正定县", "正定镇", "栾城县", "栾城镇", "行唐县", "龙州镇", "灵寿县", "灵寿镇", "高邑县", "高邑镇", "深泽县", "深泽镇", "赞皇县", "赞皇镇", "无极县", "无极镇", "平山县", "平山镇", "元氏县", "槐阳镇", "赵县", "赵州镇"]
	}, {
		name: "张家口市",
		districtAndCounty: ["桥西区", "桥东区", "宣化区", "下花园区", "宣化县", "张家口市宣化区", "张北县", "张北镇", "康保县", "康保镇", "沽源县", "平定堡镇", "尚义县", "南壕堑镇", "蔚县", "蔚州镇", "阳原县", "西城镇", "怀安县", "柴沟堡镇", "万全县", "孔家庄镇", "怀来县", "沙城镇", "涿鹿县", "涿鹿镇", "赤城县", "赤城镇", "崇礼县", "西湾子镇"]
	}, {
		name: "承德市",
		districtAndCounty: ["双桥区", "双滦区", "鹰手营子矿区", "承德县", "下板城镇", "兴隆县", "兴隆镇", "平泉县", "平泉镇", "滦平县", "滦平镇", "隆化县", "隆化镇", "丰宁满族自治县", "大阁镇", "宽城满族自治县", "宽城镇", "围场满族蒙古族自治县", "围场镇"]
	}, {
		name: "秦皇岛市",
		districtAndCounty: ["海港区", "山海关区", "北戴河区", "昌黎县", "昌黎镇", "抚宁县", "抚宁镇", "卢龙县", "卢龙镇", "青龙满族自治县", "青龙镇"]
	}]

}];



http://www.niftyadmin.cn/n/701111.html

相关文章

工具(九):JSON操作工具类

JSON作为一种数据格式&#xff0c;很是流行&#xff0c;无论是在web开发还是app接口开发中&#xff0c;都有很广泛的使用。而且也有很多工具。如阿里巴巴的fastjson&#xff0c;google的gson以及json-lib和jackson等等。都比较好用。下面我们来介绍用jackson作为基础的工具类&a…

Tomcat(四).tomcat中的小技巧

1.Java开发常用服务端口整理 1 FTP 21 2 ssh/scp 22 3 Telnet 23 4 SMTP 25 5 DNS 53 6 TFTP 69 7 Http/Nginx 80 8 POP3 110 9 SNMP 161 10 Https 443 11 MS SQL SERVER 1433/1434 12 Oracle 1521 …

云服务器(六).安装redis

方法一&#xff1a;yum 安装reids 1. 检查安装情况 查看有没有安装过&#xff1a; yum list installed redis* &#xff08;有存在要卸载yum remove MySQL*&#xff09; rpm -qa | grep redis* 查看有没有安装包&#xff1a; yum list redis* 2. linux下yum安装redis以及使用…

cmd命令:查看指定端口进程,杀死指定进程

&#xff08;1&#xff09;查看已开启端口进程&#xff08;PID&#xff09; netstat -ano等同于 netstat -a -n -o&#xff08;2&#xff09;杀死指定&#xff08;PID&#xff09;进程&#xff08;需要管理员权限&#xff09; taskkill /pid 6680 -f【注】&#xff1a;6680为…

GO-字符串常用操作

闲言少叙&#xff0c;上代码&#xff1a; package mainimport ("fmt""strconv""strings" )func main() {/*字符串基本操作--strings*/str : "wangdy"//是否包含fmt.Println(strings.Contains(str, "wang"), strings.Contai…

SQL Server 2008 安装图文教程

一、安装教程 解压文件后&#xff0c;双击setup.exe安装文件 点击界面左侧的【安装】&#xff0c;然后点击右侧的【全新SQL Server 独立安装或向现有安装添加功能】 进入【SQL Server 2008 安装程序】界面&#xff0c;首先是【安装程序支持规则】 注&#xff1a;这一步经常出现…

liunx(四).Linux命令之service和systemctl

目录&#xff1a; 作用&#xff1a;都是用来管理Linux服务的不同点&#xff1a;systemd是Linux系统最新的初始化系统(init),作用是提高系统的启动速度&#xff0c;尽可能启动较少的进程&#xff0c;尽可能更多进程并发启动。systemd对应的进程管理命令是systemctl用法 service…

工具(十):Java二维码操作工具类

1. 二维码基础 1.1概念 二维码&#xff1a;某种特定几何图形按一定规律在平面上分布的条&#xff0c;空相间的图形来记录数据符号的信息。 1.2分类 线性堆叠式二维码&#xff1b; 矩阵式二维码&#xff1b; 邮政码。 2.国家标准GB 3.QR Code类二维码 3.1ZXing工具生成/解…