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 相关文章推荐
JavaScript实现Sleep函数的代码
Mar 04 Javascript
在网站上应该用的30个jQuery插件整理
Nov 03 Javascript
jQuery插件分享之分页插件jqPagination
Jun 06 Javascript
JavaScript实现的XML与JSON互转功能详解
Feb 16 Javascript
webpack中CommonsChunkPlugin详细教程(小结)
Nov 09 Javascript
webpack4手动搭建Vue开发环境实现todoList项目的方法
May 16 Javascript
JS几个常用的函数和对象定义与用法示例
Jan 15 Javascript
基于html+css+js实现简易计算器代码实例
Feb 28 Javascript
Node.js API详解之 Error模块用法实例分析
May 14 Javascript
vue商城中商品“筛选器”功能的实现代码
Jul 01 Javascript
vue 内联样式style中的background用法说明
Aug 05 Javascript
教你部署vue项目到docker
Apr 05 Vue.js
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高自定义性安全验证码代码
2011/11/27 PHP
PHP封装的一个支持HTML、JS、PHP重定向的多功能跳转函数
2014/06/19 PHP
php实现将字符串按照指定距离进行分割的方法
2015/03/14 PHP
php图片添加文字水印实现代码
2016/03/15 PHP
laravel5.6 框架邮件队列database驱动简单demo示例
2020/01/26 PHP
js 键盘记录实现(兼容FireFox和IE)
2010/02/07 Javascript
jquery validate使用攻略 第四步
2010/07/01 Javascript
解决jquery的.animate()函数在IE6下的问题
2010/12/03 Javascript
如何使用jquery动态加载js,css文件实现代码
2013/04/03 Javascript
javascript break指定标签打破多层循环示例
2014/01/20 Javascript
JavaScript控制各种浏览器全屏模式的方法、属性和事件介绍
2014/04/03 Javascript
元素未显示设置width/height时IE中使用currentStyle获取为auto
2014/05/04 Javascript
jQuery窗口、文档、网页各种高度的精确理解
2014/07/02 Javascript
提升PHP安全:8个必须修改的PHP默认配置
2014/11/17 Javascript
14个有用的Jquery技巧分享
2015/01/08 Javascript
JavaScript合并两个数组并去除重复项的方法
2015/06/13 Javascript
使用bootstrap3开发响应式网站
2016/05/12 Javascript
使用JavaScript实现弹出层效果的简单实例
2016/05/31 Javascript
Vue验证码60秒倒计时功能简单实例代码
2018/06/22 Javascript
利用vue.js把静态json绑定bootstrap的table方法
2018/08/28 Javascript
jQuery简单实现根据日期计算星期几的方法
2019/01/09 jQuery
手挽手带你学React之React-router4.x的使用
2019/02/14 Javascript
Vue自定义全局弹窗组件操作
2020/08/11 Javascript
JavaScript代码实现微博批量取消关注功能
2021/02/05 Javascript
浅谈配置OpenCV3 + Python3的简易方法(macOS)
2018/04/02 Python
Python简单实现两个任意字符串乘积的方法示例
2018/04/12 Python
idea创建springMVC框架和配置小文件的教程图解
2018/09/18 Python
Python运行提示缺少模块问题解决方案
2020/04/02 Python
python实现AHP算法的方法实例(层次分析法)
2020/09/09 Python
CSS3实现背景透明文字不透明的示例代码
2018/06/25 HTML / CSS
Lookfantastic西班牙官网:英国知名美妆购物网站
2018/06/13 全球购物
全球最大的房车租赁市场:Outdoorsy
2018/09/19 全球购物
协议书怎么写
2014/04/21 职场文书
爱国主义影片观后感
2015/06/18 职场文书
2015年城管执法工作总结
2015/07/23 职场文书
详解MySQL的Seconds_Behind_Master
2021/05/18 MySQL