码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript省市二级联动

时间:2014-08-11 21:23:32      阅读:283      评论:0      收藏:0      [点我收藏+]

标签: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

JavaScript省市二级联动

标签:javascript

原文地址:http://blog.csdn.net/user_longling/article/details/38497925

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!