• 怎样实现二级联动


    china.xml文档


    <?xml version="1.0" encoding="UTF-8"?>
    <china>
    	<province name="河南省">
    		<city>郑州</city>
    		<city>洛阳</city>
    		<city>安阳</city>
    	</province>
    	<province name="河北省">
    		<city>石家庄</city>
    		<city>邯郸</city>
    		<city>张家口</city>
    	</province>
    	<province name="天津">
    		<city>和平区</city>
    		<city>北辰区</city>
    		<city>河西区</city>
    	</province>
    </china>


    c.html

    <!DOCTYPE html>
    <html>
    <head>
    <title>c.html</title>
    
    <meta name="keywords" content="keyword1,keyword2,keyword3">
    <meta name="description" content="this is my page">
    <meta name="content-type" content="text/html; charset=UTF-8">
    
    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
    
    <script type="text/javascript">
    	var xmlDocument = null;
    	var provinces = null;
    	var domSelectcities = null;
    	window.onload = function() {
    
    		xmlDocument = parseXML("china.xml");
    
    		provinces = xmlDocument.getElementsByTagName("province");
    
    		//获取省select对应的dom对象
    		var domSelectPro = document.getElementById("pro");
    		domSelectcities = document.getElementById("city");
    
    		for ( var i = 0; i < provinces.length; i++) {
    			var xmlPro = provinces[i];
    			//<option>xxxxx</option>
    			var newChild = document.createElement("option");
    			//xxxxx
    			var newTxt = document.createTextNode(xmlPro.getAttribute("name"));
    			//把xxxxx添加到option
    			newChild.appendChild(newTxt);
    			//把option添加到select
    			domSelectPro.appendChild(newChild);
    		}
    
    		//注册事件
    		domSelectPro.onchange = onSelectProcg;
    
    	};
    
    	var onSelectProcg = function() {
    	    //清空html select 中city
    	   // domSelectcities.childNodes.length=0; //思考以下  请参看redarmy_chen
    	   //第一种:domSelectcities.length=0;
    	   //第二种:
    	   var cnodes=domSelectcities.childNodes;
    	   for(var r=0;r<cnodes.length;){
    		   domSelectcities.removeChild(cnodes[0]);
    	   }
    	    
    		//遍历xml所有的省
    		for ( var i = 0; i < provinces.length; i++) {
    			//得到xml文件中具体的某个省
    			var xmlPro = provinces[i];
    			//判断当前省市xml文件中的那个省
    			if (this.value == xmlPro.getAttribute("name")) {
    				//解析出xml文件省下面对应的city
    				var xmlCities = xmlPro.getElementsByTagName("city");
    				for ( var k = 0; k < xmlCities.length; k++) {
    					//<option>河西区</option>
    					var newChild = document.createElement("option");
    					//河西区
    					var newTxt = document.createTextNode(xmlCities[k].firstChild.nodeValue);
    					//把xxxxx添加到option
    					newChild.appendChild(newTxt);
    					//把option添加到select
    
    					domSelectcities.appendChild(newChild);
    				}
    			}
    		}
    	};
    
    	function parseXML(filename) {
    		var xmlDoc; //document对象
    		try { //Internet Explorer
    			xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
    		} catch (e) {
    			try { //Firefox, Mozilla, Opera, etc.
    				xmlDoc = document.implementation.createDocument("", "", null);
    			} catch (e) {
    			}
    		}
    
    		//关闭异步加载,这样确保在文档完全加载之前解析器不会继续脚本的执行。 
    		xmlDoc.async = false;
    		//解析器加载名为 "xxx.xml" 的 XML 文档、
    		xmlDoc.load(filename);
    		return xmlDoc;
    	}
    </script>
    </head>
    
    <body>
    	<div align="center">
    		<h3>二级联动</h3>
    
    		<select id="pro">
    			<option>请选择省市</option>
    
    		</select> <select id="city">
    			<option>请选择市</option>
    		</select>
    	</div>
    </body>
    </html>
    


  • 相关阅读:
    Android开发常见问题及解决方法
    Jquery chosen动态设置值实例介绍 select Ajax动态加载数据 设置chosen和获取他们选中的值
    Unity3d 基于物理渲染Physically-Based Rendering之实现
    Unity3d 基于物理渲染Physically-Based Rendering之specular BRDF
    Unity3d HDR和Bloom效果(高动态范围图像和泛光)
    unity3d 制造自己的水体water effect(一)
    unity3d shader之Roberts,Sobel,Canny 三种边缘检测方法
    Unity3d shader之卡通着色Toon Shading
    NVIDIA CG语言 函数之所有数学类函数(Mathematical Functions)
    Unity3d 使用DX11的曲面细分
  • 原文地址:https://www.cnblogs.com/fuhaots2009/p/3455260.html
Copyright © 2020-2023  润新知