javascript读取Xml文件做一个二级联动菜单示例


Posted in Javascript onMarch 17, 2014
<!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>

效果如下:
http://img.blog.csdn.net/20140315235043343?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGl1aGVuZ2h1aTUyMDE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast
cities.xml文件如下:
<?xml version="1.0" encoding="UTF-8"?> 
<xml-body> 
<province name="陕西"> 
<city>西安</city> 
<city>汉中</city> 
<city>宝鸡</city> 
<city>延安</city> 
</province> 
<province name="广东"> 
<city>佛山</city> 
<city>深圳</city> 
<city>广州</city> 
<city>汕头</city> 
</province> 
<province name="辽宁"> 
<city>大连</city> 
<city>铁岭</city> 
<city>鞍山</city> 
<city>抚顺</city> 
</province> 
</xml-body>
Javascript 相关文章推荐
jQuery学习笔记之DOM对象和jQuery对象
Dec 22 Javascript
使用js解决由border属性引起的div宽度问题
Nov 26 Javascript
什么是Node.js?Node.js详细介绍
Jun 01 Javascript
js和jquery中循环的退出和继续下一个循环
Sep 03 Javascript
Bootstrap Chart组件使用教程
Apr 28 Javascript
bootstrap table 数据表格行内修改的实现代码
Feb 13 Javascript
javascript中apply/call和bind的使用
Feb 15 Javascript
js调用刷新界面的几种方式
May 03 Javascript
详解vue-router 路由元信息
Sep 13 Javascript
jquery动态添加带有样式的HTML标签元素方法
Feb 24 jQuery
Vue源码中要const _toStr = Object.prototype.toString的原因分析
Dec 09 Javascript
微信小程序点击按钮动态切换input的disabled禁用/启用状态功能
Mar 07 Javascript
javascript的解析执行顺序在各个浏览器中的不同
Mar 17 #Javascript
jquery禁用右键单击功能屏蔽F5刷新
Mar 17 #Javascript
jquery自动将form表单封装成json的具体实现
Mar 17 #Javascript
获取当前点击按钮的id用this.id实现
Mar 17 #Javascript
jquery如何根据值设置默认的选中项
Mar 17 #Javascript
jquery插件开发之实现md5插件
Mar 17 #Javascript
js对图片base64编码字符串进行解码并输出图像示例
Mar 17 #Javascript
You might like
德生BCL3000的电路分析和打磨
2021/03/02 无线电
ThinkPHP php 框架学习笔记
2009/10/30 PHP
解析php中eclipse 用空格替换 tab键
2013/06/24 PHP
PHP远程采集图片详细教程
2014/07/01 PHP
php PDO异常处理详解
2016/11/20 PHP
PHP实现基于状态的责任链审批模式详解
2019/05/31 PHP
基于JQuery 的消息提示框效果代码
2011/07/31 Javascript
jQuery 处理页面的事件详解
2015/01/20 Javascript
深入理解JavaScript系列(50):Function模式(下篇)
2015/03/04 Javascript
使用 JavaScript 进行函数式编程 (一) 翻译
2015/10/02 Javascript
基于JS代码实现实时显示系统时间
2016/06/16 Javascript
jQuery实现表格与ckeckbox的全选与单选功能
2016/11/24 Javascript
Bootstrap缩略图的创建方法
2017/03/22 Javascript
nodejs模块nodemailer基本使用-邮件发送示例(支持附件)
2017/03/28 NodeJs
Angularjs的键盘事件的绑定
2017/07/27 Javascript
js实现简易聊天对话框
2017/08/17 Javascript
Bootstrap4如何定制自己的颜色和风格
2018/02/26 Javascript
手把手带你入门微信小程序新框架Kbone的使用
2020/02/25 Javascript
element-ui中el-upload多文件一次性上传的实现
2020/12/02 Javascript
python实现爬虫统计学校BBS男女比例(一)
2015/12/31 Python
pytorch masked_fill报错的解决
2020/02/18 Python
在jupyter notebook 添加 conda 环境的操作详解
2020/04/10 Python
Python 判断时间是否在时间区间内的实例
2020/05/16 Python
python利用pytesseract 实现本地识别图片文字
2020/12/14 Python
Microsoft Advertising美国:微软搜索广告
2019/05/01 全球购物
耐克波兰官方网站:Nike波兰
2019/09/03 全球购物
管理失职检讨书
2014/02/12 职场文书
工商管理专业自荐信
2014/06/03 职场文书
工地安全质量标语
2014/06/07 职场文书
合作意向书
2014/07/30 职场文书
党员“四风”方面存在问题及整改措施
2014/09/24 职场文书
街道党风廉政建设调研报告
2015/01/01 职场文书
python实现MD5进行文件去重的示例代码
2021/07/09 Python
MySQL学习必备条件查询数据
2022/03/25 MySQL
关于Python使用turtle库画任意图的问题
2022/04/01 Python
详解Python中的for循环
2022/04/30 Python