[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. 并发编程之ThreadLocal、Volatile、synchronized、Atomic关键字扫盲

    前言 对于ThreadLocal.Volatile.synchronized.Atomic这四个关键字,我想一提及到大家肯定都想到的是解决在多线程并发环境下资源的共享问题,但是要细说每一个的特点.区别 ...

  2. ListView控件使用

    //ListView标头的代码创建方法. ColumnHeader title=new ColumnHeader(); //声明标头,并创建对象. title.Text="标头1名称&quo ...

  3. A*寻路算法入门(四)

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...

  4. Spark Streaming + Flume整合官网文档阅读及运行示例

    1,基于Flume的Push模式(Flume-style Push-based Approach)      Flume被用于在Flume agents之间推送数据.在这种方式下,Spark Stre ...

  5. leetcode 20 Valid Parentheses 括号匹配

    Given a string containing just the characters '(', ')', '{', '}', '[' and']', determine if the input ...

  6. 分布式进阶(十二)Docker固定Container IP

    使用pipework工具. 前提:每个Container所做的工作现在还很少,可以不用save.commit. 为了便于通信,自定义一个网桥(192.168.1.180/24),使之IP与宿主主机IP ...

  7. 【一天一道LeetCode】#77. Combinations

    一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given t ...

  8. 敦泰FT6X06单层自容调屏

    总的概括来说,自电容调屏在配置好通道个数和顺序后,只需调整AFE相关的设置参数使各通道的Raw Data和CI值符合定义的标准即可.– AFE是模拟前端的缩写-Analog Front End• Ra ...

  9. Linux nohup 命令

    Linux nohup 命令 如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令.该命令可以在你退出帐户之后继续运行相应的进程.nohup就是不挂起的意思(no ...

  10. 3. MariaDB设置主从复制

    翻译人员: 铁锚 翻译日期: 2013年12月25日 原文链接:  Setting Up Replication 主从复制包含两个步骤: 在 master 主服务器(组)上的设置,以及在 slave ...