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 相关文章推荐
location对象的属性和方法应用(解析URL)
Apr 12 Javascript
Jquery插件easyUi表单验证提交(示例代码)
Dec 30 Javascript
js获取当前路径的简单示例代码
Jan 08 Javascript
javascript 获取HTML DOM父、子、临近节点
Jun 16 Javascript
JavaScript获取当前cpu使用率的方法
Dec 15 Javascript
详解Angular的内置过滤器和自定义过滤器【推荐】
Dec 26 Javascript
微信小程序Server端环境配置详解(SSL, Nginx HTTPS,TLS 1.2 升级)
Jan 12 Javascript
Angular2.js实现表单验证详解
Jun 23 Javascript
jQuery自动或手动图片切换效果
Oct 11 jQuery
webpack的CSS加载器的使用
Sep 11 Javascript
React 组件渲染和更新的实现代码示例
Feb 21 Javascript
微信小程序 自定义弹窗实现过程(附代码)
Dec 05 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
《魔兽争霸3》重制版究竟重制了什么?玩家:这么糊弄真的好吗?
2020/05/04 魔兽争霸
[转帖]PHP世纪万年历
2006/12/06 PHP
php去除HTML标签实例
2013/11/06 PHP
使用php转义输出HTML到JavaScript
2015/03/27 PHP
帝国cms目录结构分享
2015/07/06 PHP
PHP接入微信H5支付的方法示例
2019/10/28 PHP
List Information About the Binary Files Used by an Application
2007/06/11 Javascript
jQuery制作仿腾讯web qq用户体验桌面
2013/08/20 Javascript
laytpl 精致巧妙的JavaScript模板引擎
2014/08/29 Javascript
jQuery中DOM树操作之复制元素的方法
2015/01/23 Javascript
jQuery对指定元素中指定字符串进行替换的方法
2015/03/17 Javascript
JQuery删除DOM节点的方法
2015/06/11 Javascript
javascript页面倒计时实例
2015/07/25 Javascript
javascript省市级联功能实现方法实例详解
2015/10/20 Javascript
jquery.validate提示错误信息位置方法
2016/01/22 Javascript
利用vue和element-ui设置表格内容分页的实例
2018/03/02 Javascript
微信小程序单选radio及多选checkbox按钮用法示例
2019/04/30 Javascript
JavaScript迭代器的含义及用法
2019/06/21 Javascript
JS数据类型STRING使用实例解析
2019/12/18 Javascript
详解Python多线程
2016/11/14 Python
python通过伪装头部数据抵抗反爬虫的实例
2018/05/07 Python
Python中itertools的用法详解
2020/02/07 Python
Django在Model保存前记录日志实例
2020/05/14 Python
pycharm最新激活码有效期至2100年(亲测可用)
2021/02/05 Python
html5本地存储 localStorage操作使用详解
2016/09/20 HTML / CSS
英国标准协会商店:BSI Shop
2019/02/25 全球购物
劳动工资科岗位职责范本
2014/03/02 职场文书
飘柔洗发水广告词
2014/03/14 职场文书
公务员年度考核评语
2014/12/31 职场文书
2015年中秋节活动总结
2015/03/23 职场文书
物流业务员岗位职责
2015/04/03 职场文书
勤俭节约倡议书范文
2015/04/29 职场文书
小区环境卫生倡议书
2015/04/29 职场文书
七年级作文之英语老师
2019/10/28 职场文书
Python 中的 copy()和deepcopy()
2021/11/07 Python
Python 装饰器(decorator)常用的创建方式及解析
2022/04/24 Python