使用javascript中读取Xml文件做成的一个二级联动菜单
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <title>menu2level.html</title>
- <meta http-equiv="content-type" content="text/html; charset=UTF-8">
- <script type="text/javascript">
- function loadXML(){
- var xmlDoc;
- try{
- //IE
- xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
- }catch(e){
- try{
- xmlDoc = document.implementation.createDocument("","",null);
- }catch(e){
- alert(e.message);
- return;
- }
- }
- xmlDoc.async=false;
- xmlDoc.load("cities.xml");
- return xmlDoc;
- }
- //网页加载完在加载 完成省份加载
- onload=function(){
- var xmlDocument = loadXML();
- var provinceArr =xmlDocument.getElementsByTagName("province");
- var proSize = provinceArr.length;
- for(var i=0;i<proSize;i++){
- //创建option节点
- var optionElement = document.createElement("option");
- var provinceName = provinceArr[i].getAttribute("name");
- //创建文本节点
- var textElement =document.createTextNode(provinceName);
- optionElement.appendChild(textElement);
- optionElement.setAttribute("value", provinceName);
- var node = document.getElementById("province");
- node.appendChild(optionElement);
- }
- }
- //省份改变事件
- function changeProvince(node){
- //获取选择的角标
- var index = node.selectedIndex;
- //获取对应的省份名
- var provinceName = node.options[index].value;
- loadCities(provinceName);
- }
- //根据省份编号加载城市信息
- function loadCities(proName){
- var xmlDocument = loadXML();
- var provinceArr =xmlDocument.getElementsByTagName("province");
- //获取城市的元素
- var citySelectEle = document.getElementById("cities");
- var size = citySelectEle.options.length;
- for(var i=size;i>0;i--){
- citySelectEle.remove(i);
- }
- //获取省份的个数
- var proSize = provinceArr.length;
- var proElement;
- //获取对应的省份元素
- for(var i=0;i<proSize;i++){
- if(provinceArr[i].getAttribute("name")==proName){
- proElement = provinceArr[i];
- break;
- }
- }
- //获取省份的城市信息
- var citiesArr = proElement.getElementsByTagName("city");
- var len = citiesArr.length;
- for(var i=0;i<len;i++){
- //创建option节点
- var optionElement = document.createElement("option");
- //获取城市名
- var cityName = citiesArr[i].firstChild.nodeValue;
- //创建文本节点
- var textElement =document.createTextNode(cityName);
- optionElement.appendChild(textElement);
- optionElement.setAttribute("value", cityName);
- citySelectEle.appendChild(optionElement);
- }
- }
- function getValue(){
- var pro = document.getElementById("province").value;
- var city = document.getElementById("cities").value;
- alert(pro+":"+city);
- }
- </script>
- </head>
- <body>
- <select id="province" onchange="changeProvince(this)">
- <option value="" selected="selected">--省份--</option>
- </select>
- <select id="cities">
- <option value="" selected="selected">--城市--</option>
- </select>
- <input type="button" value="弹出" onclick="getValue()"/>
- </body>
- </html>
使用javascript中读取Xml文件做成的一个二级联动菜单的更多相关文章
- C#中读取xml文件指定节点
目录(?)[-] XmlDocumentSelectSingleNode方法的使用 XmlDocumentSelectNodes方法的使用 通过节点属性查找指定节点 参考:Select XML N ...
- .net中读取xml文件中节点的所有属性信息
功能描述: 将数据以xml的格式记录成配置文件,需要获取配置文件中的数据时,则获取对应的配置文件,读取配置文件里对应节点的所有属性. 逻辑实现: 1.将数据配置好在xml文件中. 2.获取xml文件中 ...
- Silverlight 中 读取XML文件
一:xml文件 二:后台代码 private void ReadXml() { List<TreeViewItem> nodes = new List<TreeViewItem> ...
- javascript 实现 对XML文件 2级/3级联动操作
js代码 //实现对xml文档的读取:function loadXMLDoc(dname) { try // Internet Explorer { xmlDoc = new ActiveXObjec ...
- JavaScript 解析读取XML文档 实例代码(转)
JavaScript解析读取XML文件,主要就是加载并解析XML文件,然后就可以测试解析的XML文件的内容,打印输出来. 在线演示:http://demo.jb51.net/js/2012/readx ...
- js 读取xml文件
读取xml文件 [原创 2007-6-20 17:35:37] 字号:大 中 小 js中读取xml文件,简单的例子: <html><head><script> ...
- IE下JS读取xml文件示例代码
JS读取xml文件具体步骤为:创建DOM对象.加载xml文件(仅适用于IE)附示例代码,感兴趣的朋友可以参考下,希望对大家有所帮助使用javascript脚本读取xml文件,这里暂只考虑IE浏览器st ...
- C#中常用的几种读取XML文件的方法
1.C#中常用的几种读取XML文件的方法:http://blog.csdn.net/tiemufeng1122/article/details/6723764/
- 在C#中创建和读取XML文件
1.创建简单的XML文件 为了便于测试,我们首先创建控制台应用程序,项目命名为CreateXml,Program.cs代码如下: 这样会在C盘根目录下创建data2.xml文件,文件内容为 using ...
随机推荐
- Android开发学习之路--Camera之初体验
顾名思义Camera就是拍照和录像的功能,像微信里面,我们想拍照传一下照片,就可以通过camera来拍照,然后存储照片,发送给好友.那么微信的app里面是不会直接通过camera api来实现的,因为 ...
- 【项目管理】 PMBOK 基础概念 (引论 PMBOK 笔记)
好紧张, 3月28考试, 全力学 PMP ~~ 一. 项目 1. 项目的定义 项目 : 项目是为创造 独特 的 产品, 服务 或 成果 而进行的 临时性 工作; -- 独特 : 独特性是项目的特征, ...
- Spark-streaming 连接flume
1,程序为spark的example中的FlumeEventCount示例 object FlumeEventCount { def main(args: Array[String]) { Strea ...
- (Tomcat)服务器之web应用的虚拟目录映射和主机搭建
首先来了解一下web的虚拟目录映射和主机搭建的知识 第一:web的虚拟目录映射 首先我们要知道什么叫做web的虚拟目录映射,这个很好理解的,就是将我们本地硬盘上的web应用映射出一个供外界用户访问的地 ...
- Android进阶(八)Can't create handler inside thread that has not called Looper.prepare()
Error:Can't create handler inside thread that has not called Looper.prepare() 原代码: //利用Handler消息传递机制 ...
- TCP的ACK确认系列 — 快速确认
主要内容:TCP的快速确认.TCP_QUICKACK选项的实现. 内核版本:3.15.2 我的博客:http://blog.csdn.net/zhangskd 快速确认模式 (1) 进入快速确认模式 ...
- TCP的定时器系列 — SYNACK定时器
主要内容:SYNACK定时器的实现,TCP_DEFER_ACCPET选项的实现. 内核版本:3.15.2 我的博客:http://blog.csdn.net/zhangskd 在上一篇博客中,已经连带 ...
- IT职场: 选择外企利与弊
前几天有个同学打电话问我选择国内企业与外企的利弊,很可笑的是他是学机械的:既然和我完全不在一个行业,因此我只是说了我们IT外企的利与弊,毕竟隔行如隔山. 首先简单自我介绍一下,我所在的公司是美资500 ...
- Socket编程实践(4) --多进程并发server
1.Socket地址复用 int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen); in ...
- 一个简易版本的lua debugger实现
introduction 工欲善其事,必先利其器.lua作为一门动态语言,虽然我已经习惯了使用print来进行代码调试,但是还是有很多童鞋觉得一款好用的调试器能更好的进行lua代码编写.所以在以前接手 ...
