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>

效果如下:
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>

(0)

相关推荐

  • jsp读取大对象CLOB并生成xml文件示例

    <%@ page contentType="text/html; charset=gb2312" %> <%@ page info="database handler"%> <%@ page import="java.io.*"%> <%@ page import="java.net.*"%> <%@ page import="java.lang.*"%

  • JS读取XML文件示例代码

    复制代码 代码如下: //读取XML文件 function loadXML(xmlFile) { var xmlDoc; if (window.ActiveXObject) { xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async = false; xmlDoc.load(xmlFile); } else if (document.implementation && document.implement

  • JS使用ajax从xml文件动态获取数据显示的方法

    本文实例讲述了JS使用ajax从xml文件动态获取数据显示的方法.分享给大家供大家参考.具体分析如下: 下面的JS代码通过ajax检索xml文件的内容动态展示到网页,真个页面无刷新 <!DOCTYPE html> <html> <head> <script> function loadXMLDoc(url) { var xmlhttp; var txt,x,xx,i; if (window.XMLHttpRequest) {// code for IE7+,

  • JavaScript操作XML文件之XML读取方法

    本文实例讲述了JavaScript操作XML文件之XML读取方法.分享给大家供大家参考.具体分析如下: 假设我们现在要读取下面的 info.xml 文件 <?xml version="1.0" encoding="gb2312"?> <root> <data id="1"> <name>ceun</name> <age>21</age> </data>

  • JS解析XML文件和XML字符串详解

    JS解析XML文件 <script type='text/javascript'> loadXML = function(xmlFile){ var xmlDoc=null; //判断浏览器的类型 //支持IE浏览器 if(!window.DOMParser && window.ActiveXObject){ var xmlDomVersions = ['MSXML.2.DOMDocument.6.0','MSXML.2.DOMDocument.3.0','Microsoft.

  • IE下JS读取xml文件示例代码

    使用JS读取xml文件,这里暂只考虑IE浏览器 step1 创建DOM对象 复制代码 代码如下: function createDom() { var xmlDoc = null; try { //IE if (typeof arguments.callee.activeXString != 'string') { var versions = [ "MSXML2.DOMDocument.6.0", "MSXML2.DOMDocument.3.0", "M

  • 用javascript读取xml文件读取节点数据

    下面代码是读取的节点数据,还有一种情况是读取节点属性数据. <head> <title></title> <script type="text/javascript"> var objLength = null; var xmlHttp; var strurl = ""; function ajaxrequst() { if (window.ActiveXObject) { xmlHttp = new ActiveXO

  • jQuery解析XML文件同时动态增加js文件的方法

    本文实例讲述了jQuery解析XML文件同时动态增加js文件的方法.分享给大家供大家参考.具体实现方法如下: $(function(){ $.ajax({ url: 'js/config/jsConfig.xml', dataType: 'xml', success: function(data){ $(data).find("moduleName").each(function(i,obj) { var field = $(this); var funcName = field.at

  • 使用JS读取XML文件的方法

    由于项目上需要解析xml,于是各种百度,然后自己总结了下各个主流浏览器解析xml的方法,只能是很浅显的知道他的用法,但是还没有深层次的研究. 不同的浏览器对xml的解析方式不同,根据目前主流浏览器大致分三类: 第一类,ie祖宗: js 提供用于创建 Automation对象的方法,new ActiveXObject("Microsoft.XMLDOM") : 第二类:firefox,opera:用构造函数 DOMParser()实例化DOMParser对象,解析xml文本,并返回xml

  • javascript实现加载xml文件的方法

    本文实例讲述了javascript加载xml文件的方法.分享给大家供大家参考,具体如下: //需要读取的xml文件 var uRl = "jsReadXml.xml"; var xmlDoc; //初始化,给上述定义变量赋值 // function showcurcity(){ if(window.ActiveXObject) { xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async="fal

  • JS与jQ读取xml文件的方法

    废话不多说了,直接给大家贴代码了,具体代码如下所示: jquery读取xml文件 <!DOCTYPE html PUBLIC "-//WC//DTD XHTML . Transitional//EN" "http://www.w.org/TR/xhtml/DTD/xhtml-transitional.dtd"> <html xmlns="http://www.w.org//xhtml"> <head> <

  • JS实现加载和读取XML文件的方法详解

    本文实例讲述了JS实现加载和读取XML文件的方法.分享给大家供大家参考,具体如下: 有时在开发时用到 JS 加载和读取XML文件的情况,写下提供参考,这里主要是分两步完成: 1. JS加载XML文件 步骤一般为(1),建立 XML DOM 对象:(2),设置加载方式,异步(推荐)或同步: (3)提供XML文件URL然后调用 load 方法:大致如下: var xmlFileName="xxFile.xml"; var xmlDoc=''; if (window.ActiveXObjec

  • JS操作XML实例总结(加载与解析XML文件、字符串)

    本文实例讲述了JS操作XML的方法.分享给大家供大家参考,具体如下: 我的xml文件Login.xml如下. <?xml version="1.0" encoding="utf-8" ?> <Login> <Character> <C Text="热血" Value="0"></C> <C Text="弱气" Value="1&qu

随机推荐