[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. iOS中 基于LBXScan库二维码扫描 韩俊强的博客

    每日更新关注:http://weibo.com/hanjunqiang  新浪微博 首先声明这个二维码扫描是借助于zxing. 功能模块都完全封装好了,不过界面合你口味,直接使用就好,如果不合口味,后 ...

  2. 开发Nginx模块Helloworld

    本文是对<深入理解Nginx>一书中的实例进行实战时的记录. 1模块目录结构 my_test_module/ ├── config └── ngx_http_mytest_module.c ...

  3. Axure如何建立共享项目、如何编辑共享项目、如何获取共享项目

    如果小伙伴是一名编程工作者,我们不可以避免的会和Axure这块软件握手,但是但一个项目需要协同操作的时候,就需要用到项目共享的功能.类似我们的svn,想起机房合作的时候,每天早上来到427的我们,打开 ...

  4. Android项目-高考作文-使用ORMLite抽象公共的Dao层

    1, 定义统一的Dao接口 public interface IDao<T> { public abstract T getSingleById(int id); public abstr ...

  5. java设计模式---构建者模式

    创建者模式和工厂模式有点类似,不过关注点不同.工厂模式往往只关心你要的是什么,二不关心这个东西的具体细节是什么.而创建模式则关心的是这个东西的具体细节的创建.拿创建人物来说,我们关心的不仅是创建一个人 ...

  6. 【一天一道LeetCode】#130. Surrounded Regions

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

  7. My Upload.com product submission has been approved

     This morning I got to know that My product DB Query Analyzer had been appoved by upload.com, which ...

  8. Swift的基础之UILabel控件

    对于UILabel的相关内容,其他控件可以相似创建 //设置全局变量,将下面的 let 去掉,然后替换即可     //var myLabel = UILabel();     //系统生成的view ...

  9. C++中将构造函数或析构函数定义为private

    今天面试被问到了这个单例模式常用到的技术手段,下面进行分析: 很多情况下要求当前的程序中只有一个object.例如一个程序只有一个和数据库的连接,只有一个鼠标的object.通常我们都将构造函数的声明 ...

  10. Android增量升级的方法和原理

    总结: 我们使用delta编码算法减少Android应用升级程序的大小.我们通过bsdiff和bspatch工具在android上实现delta编码算法.服务器软件和android应用已经部署.当前, ...