js省市二级联动

本文介绍了如何使用JavaScript来实现省市二级联动的效果,作者通过搜索和整合网上的资源,提供了一个可供日后复用的示例。
摘要由CSDN通过智能技术生成

         最近项目用到省市二级联动,网上搜了半天,例子很多,javascript的,jquery的,都很不错,自己东扒拉点,西扒拉些,整合了一套,写在这里留个demo,方便以后复用。

          message.html

         

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>省市二级联动</title>
		<script type="text/javascript" src="js/citySelect.js"></script>
	</head>
	<body>
		<td>			
			<tr class="qiye-option">
					<td id="addressList">
						<select id="province" class="input-select">
										
						</select>
						<select id="city" class="input-select">
										
						</select>
					</td>
			</tr>
		</td>
	<script type="text/javascript">
	     addressInit('province', 'city');  
	</script> 
	</body>
</html>

            citySelect.js

           

var addressInit = function (_provinceList, _cityList, defaultProvince, defaultCity)
{
	var provinceList = document.getElementById (_provinceList);
	var cityList11 = document.getElementById (_cityList);
	
	// 初始化省市标签
	function initSelect (cmb, str)
	{
		for (var i = 0; i < cmb.options.length; i++)
		{
			if (cmb.options[i].value == str)
			{
				cmb.selectedIndex = i;
				return;
			}
		}
	}
	// 添加省、市option公共方法
	function addOption (cmb, str, obj)
	{
		var option = document.createElement ("OPTION");
		cmb.options.add (option);
		option.innerText = str;
		option.value = str;
		option.obj = obj;
	}
	// 改变省的选择时,市跟着变
	function changeProvince ()
	{
		cityList11.options.length = 0;
		cityList11.onchange = null;
		if (provinceList.selectedIndex == -1)
			return;
		var item = provinceList.options[provinceList.selectedIndex].obj;
		for (var i = 0; i < item.c.length; i++)
		{
			addOption (cityList11, item.c[i], item.c[i]);
		}
		initSelect (cityList11, defaultCity);
	}
	
	// 遍历省市列表,将省添加到option
	for (var i = 0; i < cityList.length; i++)
	{
		addOption (provinceList, cityList[i].p, cityList[i]);
	}
	initSelect (provinceList, defaultProvince);
	changeProvince ();
	provinceList.onchange = changeProvince;
}

//省市内容
var cityList = [
        {
            p : "北京",
            c : [
                    "东城区", "西城区", "朝阳区", "丰台区", "石景山区", "海淀区", "门头沟区", "房山区", "通州区", "顺义区", "昌平区", 
好的,我可以回答您的问题。以下是用 JavaScript 实现省市二级联动的示例代: ```javascript // 省份下拉列表 var provinceList = document.getElementById("province-list"); // 城市下拉列表 var cityList = document.getElementById("city-list"); // 省份和城市数据 var data = { "北京市": ["东城区", "西城区", "朝阳区", "丰台区", "石景山区", "海淀区", "门头沟区", "房山区", "通州区", "顺义区", "昌平区", "大兴区", "怀柔区", "平谷区", "密云区", "延庆区"], "上海市": ["黄浦区", "徐汇区", "长宁区", "静安区", "普陀区", "虹口区", "杨浦区", "闵行区", "宝山区", "嘉定区", "浦东新区", "金山区", "松江区", "青浦区", "奉贤区", "崇明区"], "广东省": ["广州市", "深圳市", "珠海市", "汕头市", "韶关市", "佛山市", "江门市", "湛江市", "茂名市", "肇庆市", "惠州市", "梅州市", "汕尾市", "河源市", "阳江市", "清远市", "东莞市", "中山市", "潮州市", "揭阳市", "云浮市"], // 其它省份的数据... }; // 根据省份生成城市选项 function generateCityOptions(cityArr) { var optionsHtml = ""; for (var i = 0; i < cityArr.length; i++) { var city = cityArr[i]; optionsHtml += "<option value='" + city + "'>" + city + "</option>"; } return optionsHtml; } // 当选择的省份变化时,更新城市列表 function updateCityList() { var selectedProvince = provinceList.value; var cityArr = data[selectedProvince]; var optionsHtml = generateCityOptions(cityArr); cityList.innerHTML = optionsHtml; } // 初始化省份列表 var provinceOptionsHtml = generateCityOptions(Object.keys(data)); provinceList.innerHTML = provinceOptionsHtml; // 绑定省份选择器的 change 事件 provinceList.addEventListener("change", updateCityList); ``` 这段代可以生成两个下拉列表,第一个是省份的选择列表,第二个是根据选中的省份动态生成的城市选择列表。您可以将其嵌入到您的网页中使用。 希望这些能对您有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值