JavaScript省市二级联动

cities.xml

<?xml version="1.0" encoding="GB2312"?>
<china>
	<province name="吉林省">
		<city>长春</city>
		<city>吉林市</city>
		<city>四平</city>
		<city>松原</city>
		<city>通化</city>
	</province>
	<province name="辽宁省">
		<city>沈阳</city>
		<city>大连</city>
		<city>鞍山</city>
		<city>抚顺</city>
	</province>
	<province name="山东省">
		<city>济南</city>
		<city>青岛</city>
		<city>威海</city>
		<city>烟台</city>
		<city>潍坊</city>
	</province>
	<province name="湖北省">
		<city>武汉</city>
		<city>广水</city>
		<city>孝感</city>
		<city>荆州</city>
		<city>黄石</city>
		<city>鄂州</city>
		<city>黄冈</city>
	</province>
</china>	

city.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>二级联动</title>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>

  <body>
    <select id="province" >
    	<option>--请选择--</option>
    	<option value="湖北省">湖北省</option>
    	<option value="吉林省">吉林省</option>
    	<option value="辽宁省">辽宁省</option>
    	<option value="山东省">山东省</option>
    </select>

	<select id="city">
		<option>--请选择--</option>
	</select>
  </body>
  <script type="text/javascript">
  	document.getElementById("province").onchange=function(){
		//当前选中的省
		var provinceValue=this.value;
		var cityNode=document.getElementById("city");

		//删除市下拉列表中的前一个省的城市项
		var cityOptions=cityNode.getElementsByTagName("option");
		for(var i=cityOptions.length-1;i>0;i--){
			cityNode.removeChild(cityOptions[i]);
		}

		var xmlDoc=parseXML("cities.xml");
		var xmlProvinceElements=xmlDoc.getElementsByTagName("province");

		//下拉列表中添加选中省的城市项
		for(var i=0;i<xmlProvinceElements.length;i++){
			if(xmlProvinceElements[i].getAttribute("name")==provinceValue){
				var xmlCityElements=xmlProvinceElements[i].getElementsByTagName("city");
				for(var j=0;j<xmlCityElements.length;j++){
					var xmlCityName=xmlCityElements[j].firstChild.nodeValue;
					var cityOptionElement=document.createElement("option");
					cityOptionElement.setAttribute("value",xmlCityName);
					cityOptionElement.appendChild(document.createTextNode(xmlCityName));
					cityNode.appendChild(cityOptionElement);
				}
				break;
			}
		}

	}

	/*
	 * 加载XML文件
	 * @param {Object} filename
	 */
	function parseXML(filename){
		try{		//Internet Explorer  创建一个空的xml文档
			xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		}catch(e){	// Firefox,Mozilla,Opera....
			try {
				xmlDoc=document.implementation.createsDocument("","",null);
			}catch(e){}
		}
		//关闭异步加载
		xmlDoc.async=false;
		//加载XML文档
		xmlDoc.load(filename);
		return xmlDoc;
	}
  </script>
</html>

JavaScript省市二级联动,布布扣,bubuko.com

时间: 2024-12-26 16:50:58

JavaScript省市二级联动的相关文章

javascript 省市二级联动

通过遍历二维数组 获取到 二级列表的 每个option 然后onchange事件 获取到省,然后循环遍历该省具有的市并将遍历到的市添加到id为city的选择器中. 获取完需要清空二级列表的内容,不然不能刷新下一次选择省后的二级城市列表 <script> //1.创建一个二维数组用于存储省份和城市 var cities=new Array(3); cities[0]=new Array("武汉市","黄冈市","襄阳市","荆

(转)JavaScript html js 地区二级联动,省市二级联动,省市县js+xml三级联动

JavaScript html js 地区二级联动,省市二级联动,省市县js+xml三级联动 原文链接:http://heisetoufa.iteye.com/blog/353974 比较好的二级联动: 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 2 <HTML> 3 <HEAD> 4 <TITLE> New Document </TITLE>

JavaScript实现省市二级联动

    JavaScript实现省市二级联动 展示一下效果? 当我鼠标点击前面的省那一栏的时候后面市那一栏会出现相对应的下辖市 实现思路 1. 添加相对应的select容器 2. 然后添加数据 3. 将相应的数据赋值给对应的option控件 方法的讲解 Function()函数 onchange();改变事件 笔者在这里写了一个关于河南与河北的简单联动   省市联动 <body> <select id="province"></select>省 &l

省市二级联动--使用app-jquery-cityselect.js插件

只有省市二级联动,三级联动还没处理好,会尽快完善. 嵌入id: <div class="form-group"> <label>地址</label> <p>从:</p> <div class="input-group"> <input id="areaIdFrom" name="areaIdFrom" type="hidden"

jsp+ajax+serverlet实现省市二级联动

jsp界面 <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&g

jQuery_完成省市二级联动

当填表的时候会让你设计某省某市怎么设计,应该明白,如果你选择了一个确定的省,那么在第二个下拉框内则不会有除了你选择的省的市之外的名称.而这功能用js来实现很麻烦,但是用jq确很容易实现. 原表结构: 代码如下: <!DOCTYPE html> <html> <head> <script typr="text/javascript" src="js/jquery-1.8.3.js"></script> <

JS实现省市二级联动

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF

使用javascript实现二级联动菜单

本文主要探讨使用javascript实现二级联动菜单.众所周知,二级联动菜单在实际的开发中是比较常见的,虽说实现方式千差万别,但是,使用javascript对其进行实现是使用其他框架进行实现的基础.有必要研究探讨一下. 1.需求 比如,常见的选择所属地区的2级联动菜单,当选择省份之后,2级菜单选项会随之变化. 2.实现思路 2.1页面使用2个select,并用id进行区分 <select id="city"></select> <select id=&qu

微信小程序picker组件 - 省市二级联动

微信小程序picker组件自带省市区选择器,但是业务需求需要省市选择器,参考官方demo自己写了一个省市选择器 wxml文件 <view class="section"> <view class="section__title">省市二级联动demo</view> <picker mode="multiSelector" bindchange="bindMultiPickerChange&quo