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实现居中弹出层代码
Aug 25 Javascript
统计出现最多的字符次数的js代码
Dec 03 Javascript
动态改变div的z-index属性的简单实例
Aug 08 Javascript
Jquery获取和修改img的src值的方法
Feb 17 Javascript
简介JavaScript中的italics()方法的使用
Jun 08 Javascript
jQuery手动点击实现图片轮播特效
Apr 20 Javascript
js和jquery分别验证单选框、复选框、下拉框
Dec 17 Javascript
原生Javascript插件开发实践
Jan 18 Javascript
H5实现仿flash效果的实现代码
Sep 29 Javascript
mint-ui 时间插件使用及获取选择值的方法
Feb 09 Javascript
ES6 Symbol在对象中的作用实例分析
Jun 06 Javascript
浅谈JSON5解决了JSON的两大痛点
Dec 14 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
PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析
2014/08/18 PHP
变量在 PHP7 内部的实现(二)
2015/12/21 PHP
[原创]php正则删除html代码中class样式属性的方法
2017/05/24 PHP
JavaScript 闭包深入理解(closure)
2009/05/27 Javascript
用cssText批量修改样式
2009/08/29 Javascript
利用jQuery 实现GridView异步排序、分页的代码
2010/02/06 Javascript
web页面数据展示新想法(json)
2010/06/08 Javascript
jquery实现图片左右间隔滚动特效(可自动播放)
2013/05/08 Javascript
浅析如何利用angular结合translate为项目实现国际化
2016/12/08 Javascript
Vue.js基础指令实例讲解(各种数据绑定、表单渲染大总结)
2017/07/03 Javascript
微信小程序“摇一摇”的实例代码
2017/07/20 Javascript
js学习总结之DOM2兼容处理重复问题的解决方法
2017/07/27 Javascript
layui 表格的属性的显示转换方法
2018/08/14 Javascript
微信小程序实现点击按钮后修改颜色
2019/12/05 Javascript
JS window对象简单操作完整示例
2020/01/14 Javascript
[01:53]DOTA2超级联赛专访Zhou 五年职业青春成长
2013/05/29 DOTA
[19:14]DOTA2 HEROS教学视频教你分分钟做大人-维萨吉
2014/06/24 DOTA
[02:19]DOTA2上海特级锦标赛 观赛指南 Spectator Guide
2016/02/04 DOTA
Python中使用PyHook监听鼠标和键盘事件实例
2014/07/18 Python
Python 装饰器深入理解
2017/03/16 Python
pandas 使用apply同时处理两列数据的方法
2018/04/20 Python
python获取Linux发行版名称
2019/08/30 Python
python os.path.isfile()因参数问题判断错误的解决
2019/11/29 Python
HTML5 常见面试题之PC端和移动端区别介绍
2018/01/22 HTML / CSS
教师年终个人自我评价
2013/10/04 职场文书
求职简历中个人的自我评价
2013/12/25 职场文书
税务干部鉴定材料
2014/02/11 职场文书
初一新生军训方案
2014/05/22 职场文书
消防标语大全
2014/06/07 职场文书
小学教师先进事迹材料
2014/12/15 职场文书
初中教师个人总结
2015/02/10 职场文书
留学推荐信中文范文
2015/03/26 职场文书
在校证明模板
2015/06/17 职场文书
MongoDB数据库的安装步骤
2021/06/18 MongoDB
SpringDataJPA在Entity中常用的注解介绍
2021/12/06 Java/Android
Python用any()函数检查字符串中的字母以及如何使用all()函数
2022/04/14 Python