`
gtgt1988
  • 浏览: 111658 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

Dom和xml的二级联动

 
阅读更多
主要学习下javascript对XML的操作




代码如下:
		<script type="text/javascript">
	window.onload = function() {
		var xmlDoc = parseXml("images/cities.xml");

		//获取XML的节点
		var provinceNodes = xmlDoc.getElementsByTagName("province");

		//获取省的节点

		var provinceNode = document.getElementById("province");

		//获取市的节点

		var citiesHtmlNode = document.getElementById("city");

		for ( var i = 0; i < provinceNodes.length; i++) {

			//创建option 下拉框值

			var optionNode = document.createElement("option");

			//获取省的名称

			var value = provinceNodes[i].getAttribute("name");

			//为option添加文本节点   值为省的name属性值

			optionNode.appendChild(document.createTextNode(value));

			optionNode.setAttribute("value", value); //为添加的option设置值

			//添加到provinceNode节点中

			provinceNode.appendChild(optionNode);

		}

		provinceNode.onchange = function() {
			//清空原有的的节点

			//获取清空的select里面的所有的option对象

			var cityHtmlOptionNodes = citiesHtmlNode
					.getElementsByTagName("option");//获取的是所有的option

			//获取长度         

			var len = cityHtmlOptionNodes.length;

			for ( var m = 0; m < len; m++) {

				//看是否有第一个对象,【1】代表的第二个对象,如果不为空

				if (cityHtmlOptionNodes[1]) {

					//始终移除第二个对象

					citiesHtmlNode.remove(cityHtmlOptionNodes[1]);

				}

			}
			
	  for (var i = 0; i < provinceNodes.length; i++) {
	         //判断点击的是否是value

                if (this.value == provinceNodes[i].getAttribute("name")) {
                 var citiesNode = provinceNodes[i].getElementsByTagName("city");
                    for (var j = 0; j < citiesNode.length; j++) {
                        var cityOptionNode = document.createElement("option");

                      
                     // alert(citiesNode.length);

            //为创建的option对象添加文本 citieNode[j].firstChild.value                        
        cityOptionNode.appendChild(document.createTextNode(citiesNode[j].firstChild.nodeValue));

                        //把创建的对象添加到city中

                        citiesHtmlNode.appendChild(cityOptionNode);

                    
                    
                    }
	          }		
                
                
                
                
                
                
                }

	      
	        

	
	
	
	
	
	
		}

	}

	//解析xml文档

	function parseXml(filename) {

		var xmlDoc;

		try {

			//IE浏览器

			xmlDoc = new ActiveXObject("Microsoft.XMLDOM");

		}

		catch (e) {

			try {

				//非IE浏览器

				xmlDoc = document.implementation.createDocument("", "", null);

			}

			catch (ex) {

				alert("你使用的是不是浏览器呀!");

			}

		}

		//解析的时候是异步还是同步,设置为false,是关闭异步加载,这样确保在文档完全加载之前不会继续脚本的执行

		xmlDoc.async = false;

		xmlDoc.load(filename);

		return xmlDoc;

	}
</script>

	</head>

	<body>
		<div align="center">

			<div id="data">

				<select id="province">

					<option>
						请选择省
					</option>

				</select>

				<select id="city">

					<option>
						请选择市
					</option>

				</select>

				<select id="country">

					<option>
						请选择市
					</option>

				</select>

			</div>

		</div>


	</body>
</html>


用到的xml文件为:

<?xml version="1.0" encoding="GBK"?>

<china>

         <province name="河北">

                   <city name="石家庄">

                            

                   </city>

                   <city name="廊坊">

                   </city>

                   <city name="保定">

                   </city>

                   <city name="邢台">

                   </city>

                   <city name="沧州">

                            

                   </city>

                   <city name="衡水">

                            

                   </city>

         </province>

         <province name="北京">

                   <city>大兴</city>

                   <city>房山</city>

                   <city>昌平</city>

                   <city>朝阳</city>

                   <city>海淀</city>

         </province>

         <province name="河南">

                   <city>开封</city>

                   <city>商丘</city>

                   <city>驻马店</city>

                   <city>平顶山</city>

                   <city>洛阳</city>

                   <city>郑州</city>

         </province>

         <province name="安徽">

                   <city>阜阳</city>

                   <city>亳州</city>

                   <city>合肥</city>

         </province>

 

</china>

 

分享到:
评论

相关推荐

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

    代码如下: &lt;!DOCTYPE HTML PUBLIC “-//W3C//DTD ... &lt;head&gt; &lt;title&gt;.../title&gt;... [removed] function loadXML(){ var xmlDoc; try{ //IE xmlDoc=new ActiveXObject(“Microsoft.XMLDOM”

    (全)传智播客PHP就业班视频完整课程

    10-20 5 smarty二级联动 10-20 6 smarty完成静态化 10-20 7 10-20 8 smarty分页技术 10-20 9 10-22 1 ajax介绍 无刷新验证用户名 10-22 2 ajax如何处理xml格式返回数据 10-22 3 json 10-22 4 ajax如何处理json格式...

    史上最全韩顺平传智播客PHP就业班视频,10月份全集

    10-20 5 smarty二级联动 10-20 6 smarty完成静态化 10-20 7 10-20 8 smarty分页技术 10-20 9 10-22 1 ajax介绍 无刷新验证用户名 10-22 2 ajax如何处理xml格式返回数据 10-22 3 json 10-22 4 ajax如何处理json格式...

    韩顺平PHP JS JQUERY 所有视频下载种子 货真价实

    10-20 5 smarty二级联动 10-20 6 smarty完成静态化 10-20 7 10-20 8 smarty分页技术 10-20 9 10-22 1 ajax介绍 无刷新验证用户名 10-22 2 ajax如何处理xml格式返回数据 10-22 3 json 10-22 4 ajax如何处理json格式...

    史上最全传智播客PHP就业班视频课,8月份视频

    10-20 5 smarty二级联动 10-20 6 smarty完成静态化 10-20 7 10-20 8 smarty分页技术 10-20 9 10-22 1 ajax介绍 无刷新验证用户名 10-22 2 ajax如何处理xml格式返回数据 10-22 3 json 10-22 4 ajax如何处理json格式...

    《javaScrip开发技术大全》源代码

    • sample08.htm 使用外部脚本文件和嵌入的JavaScript代码 • sample09.htm 边加载边解析的JavaScript代码 • sample10.htm 先加载后解析的JavaScript代码 • sample11.htm 单行...

    史上最全韩顺平传智播客PHP就业班视频,9月份全集

    10-20 5 smarty二级联动 10-20 6 smarty完成静态化 10-20 7 10-20 8 smarty分页技术 10-20 9 10-22 1 ajax介绍 无刷新验证用户名 10-22 2 ajax如何处理xml格式返回数据 10-22 3 json 10-22 4 ajax如何处理json格式...

    《程序天下:JavaScript实例自学手册》光盘源码

    11.17 三级联动菜单 11.18 树型目录菜单 第12章 窗口特效与弹出式警告 12.1 无关闭按钮的窗口 12.2 鼠标控制窗口开关 12.3 使窗口只第一次访问时弹出 12.4 禁止弹出警告框 12.5 关闭窗口不提示的方法 12.6 关闭窗口...

    python入门到高级全栈工程师培训 第3期 附课件代码

    05 js练习之二级联动 06 jquery以及jquery对象介绍 07 jquery选择器 08 jquery的查找筛选器 09 jquery练习之左侧菜单 第44章 01 jquery属性操作之html,text,val方法 02 jquery循环方法和attr,prop方法 03 jquery...

    程序天下:JavaScript实例自学手册

    11.17 三级联动菜单 11.18 树型目录菜单 第12章 窗口特效与弹出式警告 12.1 无关闭按钮的窗口 12.2 鼠标控制窗口开关 12.3 使窗口只第一次访问时弹出 12.4 禁止弹出警告框 12.5 关闭窗口不提示的方法 12.6 关闭窗口...

Global site tag (gtag.js) - Google Analytics