[html]
 view
plain
copy

  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>

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

  1. C#中读取xml文件指定节点

    目录(?)[-] XmlDocumentSelectSingleNode方法的使用 XmlDocumentSelectNodes方法的使用 通过节点属性查找指定节点   参考:Select XML N ...

  2. .net中读取xml文件中节点的所有属性信息

    功能描述: 将数据以xml的格式记录成配置文件,需要获取配置文件中的数据时,则获取对应的配置文件,读取配置文件里对应节点的所有属性. 逻辑实现: 1.将数据配置好在xml文件中. 2.获取xml文件中 ...

  3. Silverlight 中 读取XML文件

    一:xml文件 二:后台代码 private void ReadXml() { List<TreeViewItem> nodes = new List<TreeViewItem> ...

  4. javascript 实现 对XML文件 2级/3级联动操作

    js代码 //实现对xml文档的读取:function loadXMLDoc(dname) { try // Internet Explorer { xmlDoc = new ActiveXObjec ...

  5. JavaScript 解析读取XML文档 实例代码(转)

    JavaScript解析读取XML文件,主要就是加载并解析XML文件,然后就可以测试解析的XML文件的内容,打印输出来. 在线演示:http://demo.jb51.net/js/2012/readx ...

  6. js 读取xml文件

    读取xml文件 [原创 2007-6-20 17:35:37]     字号:大 中 小 js中读取xml文件,简单的例子: <html><head><script> ...

  7. IE下JS读取xml文件示例代码

    JS读取xml文件具体步骤为:创建DOM对象.加载xml文件(仅适用于IE)附示例代码,感兴趣的朋友可以参考下,希望对大家有所帮助使用javascript脚本读取xml文件,这里暂只考虑IE浏览器st ...

  8. C#中常用的几种读取XML文件的方法

    1.C#中常用的几种读取XML文件的方法:http://blog.csdn.net/tiemufeng1122/article/details/6723764/

  9. 在C#中创建和读取XML文件

    1.创建简单的XML文件 为了便于测试,我们首先创建控制台应用程序,项目命名为CreateXml,Program.cs代码如下: 这样会在C盘根目录下创建data2.xml文件,文件内容为 using ...

随机推荐

  1. GrabCut in One Cut(基于图割算法grabcut的一次快速图像分割的OpenCV实现)----目前效果最好的图割

     One cut in grabcut(grabcut算法的非迭代实现?) 本文针对交互式图像分割中的图割算法,主要想翻译一篇英文文献.不足之处请大家指正. 这是博主近期看到的效果最好,实现最简单 ...

  2. 精通CSS+DIV网页样式与布局--初探CSS

    CSS英文名Cascading Style Sheet,中文名字叫层叠样式表,是用于控制页面样式并允许将样式信息与网页内容分离的一种标记性语言,DIV+CSS是WEB设计标准,它是一种网页的布局方法. ...

  3. 解读“Deep Neural Decision Forests” 2015 Winner of the David Marr Prize

    2015ICCV会议最佳论文奖,即有着"计算机视觉界最高奖"之称的马尔奖(Marr Prize)授予了由微软剑桥研究院(Microsoft Research, Cambridge  ...

  4. UNIX环境高级编程——线程同步之互斥量

    互斥量(也称为互斥锁)出自POSIX线程标准,可以用来同步同一进程中的各个线程.当然如果一个互斥量存放在多个进程共享的某个内存区中,那么还可以通过互斥量来进行进程间的同步. 互斥量,从字面上就可以知道 ...

  5. Torch的安装和学习

    Long long ago, 就已经安装好Torch,这里再记录一下.Torch是Facebook开发的用于AI的科学计算框架,可广泛运用于机器学习的很多算法.相比Caffe,其接口运用更加方便,使用 ...

  6. 网站开发进阶(三十七)JSP页面跳转问题解决

    JSP页面跳转问题解决 PS:本篇博文质量欠佳,仅供个人学习之用. 前言 在做Web开发时,对别人的应用(jsp+servlet)进行服务器部署时出现了页面跳转无效的情况.但是项目在本地未出现此状况. ...

  7. Strategy 设计模式 策略模式 超靠谱原代码讲解

    先来假设一种情,我们需要向三种不同的客户做出不同的报价,一般来说要肿么设计呢,是不是马上会想到用IF,没有错,对于这种情况,策略模式是最好的选.大家可以这么理解,如果有情况需要用到大量的IF,那你用策 ...

  8. android studio2.0出现的gradle问题,instant Run即时运行不了.

    android studio 2.0出现的gradle问题: instant Run即时运行不了.经历了几乎9个preView版本的AS2.0,终于迎来了正式版,然而晴天我的霹雳,好不容易装好的2.0 ...

  9. Android官方网站

     http://wear.techbrood.com/sdk/installing/index.html?pkg=tools

  10. NSString的几种常用方法—韩俊强博…

    要把 "2011-11-29" 改写成 "2011/11/29"一开始想用ios的时间格式,后来用NSString的方法搞定. 1.创建NSString字符串 ...