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

时间:2023-03-09 09:19:14
使用javascript中读取Xml文件做成的一个二级联动菜单


[html]
 view
plain
copy使用javascript中读取Xml文件做成的一个二级联动菜单使用javascript中读取Xml文件做成的一个二级联动菜单
  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. function loadCities(proName){
  51. var xmlDocument = loadXML();
  52. var provinceArr =xmlDocument.getElementsByTagName("province");
  53. //获取城市的元素
  54. var citySelectEle = document.getElementById("cities");
  55. var size = citySelectEle.options.length;
  56. for(var i=size;i>0;i--){
  57. citySelectEle.remove(i);
  58. }
  59. //获取省份的个数
  60. var proSize = provinceArr.length;
  61. var proElement;
  62. //获取对应的省份元素
  63. for(var i=0;i<proSize;i++){
  64. if(provinceArr[i].getAttribute("name")==proName){
  65. proElement = provinceArr[i];
  66. break;
  67. }
  68. }
  69. //获取省份的城市信息
  70. var citiesArr = proElement.getElementsByTagName("city");
  71. var len = citiesArr.length;
  72. for(var i=0;i<len;i++){
  73. //创建option节点
  74. var optionElement = document.createElement("option");
  75. //获取城市名
  76. var cityName = citiesArr[i].firstChild.nodeValue;
  77. //创建文本节点
  78. var textElement =document.createTextNode(cityName);
  79. optionElement.appendChild(textElement);
  80. optionElement.setAttribute("value", cityName);
  81. citySelectEle.appendChild(optionElement);
  82. }
  83. }
  84. function getValue(){
  85. var pro = document.getElementById("province").value;
  86. var city = document.getElementById("cities").value;
  87. alert(pro+":"+city);
  88. }
  89. </script>
  90. </head>
  91. <body>
  92. <select id="province" onchange="changeProvince(this)">
  93. <option value="" selected="selected">--省份--</option>
  94. </select>
  95. <select id="cities">
  96. <option value="" selected="selected">--城市--</option>
  97. </select>
  98. <input type="button" value="弹出" onclick="getValue()"/>
  99. </body>
  100. </html>