使用javascript中读取Xml文件做成的一个二级联动菜单


[html]
 view plaincopy在CODE上查看代码片派生到我的代码片
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  2. <html>  
  3.   <head>  
  4.     <title>menu2level.html</title>  
  5.     <meta http-equiv="content-type" content="text/html; charset=UTF-8">  
  6.     <script type="text/javascript">  
  7.         function loadXML(){  
  8.         var xmlDoc;  
  9.             try{  
  10.             //IE  
  11.              xmlDoc=new ActiveXObject("Microsoft.XMLDOM");  
  12.             }catch(e){  
  13.                 try{  
  14.                 xmlDoc = document.implementation.createDocument("","",null);  
  15.                 }catch(e){  
  16.                 alert(e.message);  
  17.                 return;  
  18.                 }  
  19.             }  
  20.             xmlDoc.async=false;  
  21.             xmlDoc.load("cities.xml");  
  22.             return xmlDoc;  
  23.         }  
  24.         //网页加载完在加载  完成省份加载  
  25.         onload=function(){  
  26.             var xmlDocument = loadXML();  
  27.             var provinceArr =xmlDocument.getElementsByTagName("province");  
  28.             var proSize = provinceArr.length;  
  29.             for(var i=0;i<proSize;i++){  
  30.                 //创建option节点  
  31.                 var optionElement = document.createElement("option");  
  32.                 var provinceName = provinceArr[i].getAttribute("name");  
  33.                 //创建文本节点  
  34.                 var textElement =document.createTextNode(provinceName);  
  35.                 optionElement.appendChild(textElement);  
  36.                 optionElement.setAttribute("value", provinceName);  
  37.                 var node = document.getElementById("province");  
  38.                 node.appendChild(optionElement);  
  39.             }     
  40.         }  
  41.         //省份改变事件  
  42.         function changeProvince(node){  
  43.             //获取选择的角标  
  44.             var index = node.selectedIndex;  
  45.             //获取对应的省份名  
  46.             var provinceName = node.options[index].value;  
  47.             loadCities(provinceName);  
  48.         }  
  49.           
  50.         //根据省份编号加载城市信息  
  51.         function loadCities(proName){  
  52.             var xmlDocument = loadXML();  
  53.             var provinceArr =xmlDocument.getElementsByTagName("province");  
  54.             //获取城市的元素  
  55.             var citySelectEle = document.getElementById("cities");  
  56.             var size = citySelectEle.options.length;  
  57.             for(var i=size;i>0;i--){  
  58.                 citySelectEle.remove(i);  
  59.             }  
  60.               
  61.             //获取省份的个数  
  62.             var proSize = provinceArr.length;  
  63.             var proElement;  
  64.             //获取对应的省份元素  
  65.             for(var i=0;i<proSize;i++){  
  66.                 if(provinceArr[i].getAttribute("name")==proName){  
  67.                     proElement = provinceArr[i];  
  68.                     break;  
  69.                 }  
  70.             }  
  71.             //获取省份的城市信息  
  72.             var citiesArr = proElement.getElementsByTagName("city");  
  73.             var len = citiesArr.length;  
  74.             for(var i=0;i<len;i++){  
  75.                 //创建option节点  
  76.                 var optionElement = document.createElement("option");  
  77.                 //获取城市名  
  78.                 var cityName = citiesArr[i].firstChild.nodeValue;  
  79.                 //创建文本节点  
  80.                 var textElement =document.createTextNode(cityName);  
  81.                 optionElement.appendChild(textElement);  
  82.                 optionElement.setAttribute("value", cityName);  
  83.                 citySelectEle.appendChild(optionElement);  
  84.             }     
  85.         }  
  86.         function getValue(){  
  87.             var pro = document.getElementById("province").value;  
  88.             var city = document.getElementById("cities").value;  
  89.             alert(pro+":"+city);  
  90.         }  
  91.     </script>  
  92.   </head>  
  93.     
  94.   <body>  
  95.   <select id="province" onchange="changeProvince(this)">  
  96.     <option value="" selected="selected">--省份--</option>  
  97.   </select>  
  98.   <select id="cities">  
  99.     <option value="" selected="selected">--城市--</option>  
  100.   </select>  
  101.   <input type="button" value="弹出" onclick="getValue()"/>   
  102.   </body>  
  103. </html>  
原文地址:https://www.cnblogs.com/baiduligang/p/4247648.html