1
2
3
4
DOM解析cities
5
6
7
8 请选择......
9 吉林省
10 辽宁省
11 山东省
12
13
14 请选择......
15
16
17 window.οnlοad=function(){18 document.getElementById("province").οnchange=function(){19 //获取变化的省的值
20 varchangeProvinceValue=this.value;21 /**********************************************************************************************/
22 //清空城市的下拉选
23 varcityElement=document.getElementById("city");24
25 //获得所有的option
26 varcityOptionElements=cityElement.getElementsByTagName("option");27
28 //从后往前删
29 for(vari=cityOptionElements.length-1;i>0;i--){30 cityElement.removeChild(cityOptionElements[i]);31 }32 /**********************************************************************************************/
33 //alert(changeProvinceValue);
34 //测试xml是否加载成功
35 varxmlDoc=parseXML("cities.xml");36 /**********************************************************************************************/
37 varprovinceElement=null;38
39 //定位到具体省
40 varxmlprovinceElements=xmlDoc.getElementsByTagName("province");41 for(vari=0;i
43 varxmlProvinceElement=xmlprovinceElements[i];44 varnameAttrValue=xmlProvinceElement.getAttribute("name");45 if(changeProvinceValue==nameAttrValue){46 //把符合条件的省的元素保存到外部
47 provinceElement=xmlProvinceElement;48 break;49 }50 }51 /**********************************************************************************************/
52
53 if(provinceElement!=null){54 //获得省下所有的city节点
55 varxmlCityElements=provinceElement.getElementsByTagName("city");56 for(vari=0;i
59 //创建option标签
60 varoptionElement=document.createElement("option");61 optionElement.setAttribute("value", cityValue);62 //文本节点
63 varcityTextElement=document.createTextNode(cityValue);64 //------------------------------------
65 optionElement.appendChild(cityTextElement);66
67 //获得cityElement
68 varcityElement=document.getElementById("city");69 //添加option到select
70 cityElement.appendChild(optionElement);71 }72 }73 }74 }75
76 /*
77 *78 *DOM解析器79 *80 *81 */
82 functionparseXML(filename){83 try{//Internet Explorer
84 xmlDoc=newActiveXObject("Microsoft.XMLDOM");85
86 }catch(e){87 try{//Firefox, Chrome, Opera, Safari
88 xmlDoc=document.implementation.createDocument("","",null);89 }catch(e){}90 }91 xmlDoc.async=false;//关闭异步加载
92 xmlDoc.load(filename);//加载xml文档
93 returnxmlDoc;94 }95
96
97