<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>js-9.html</title> <scripttype="text/javascript"> window.onload=function(){ var provinceNode=document.getElementById('province'); provinceNode.onchange=function(){ //清除city节点的所有子节点(除第一个节点) var cityNode=document.getElementById('city'); var cityNodeOptions=cityNode.getElementsByTagName('option'); var len=cityNodeOptions.length; for(var i=1;i<len;i++){ //每次都清除第2个,因为数组cityNodeOptions的长度是动态变化的 cityNode.removeChild(cityNodeOptions[1]); } var provinceVal=this.value; if(provinceVal==null){ returnfalse; } //加载city.xml文件 var xmlDoc=parseXml('cities.xml'); //使用XPATH技术,在xml中查找匹配的province节点 var provinceEles = xmlDoc.selectNodes("//province[@name='" + provinceVal + "']"); var cityNodes=provinceEles[0].getElementsByTagName('city'); //遍历city,得到每个文本值,创建新的节点并添加 for(var i=0;i<cityNodes.length;i++){ var text=cityNodes[i].firstChild.nodeValue; var addNodeOption=document.createElement('option'); var addNodeText=document.createTextNode(text); addNodeOption.appendChild(addNodeText); //将新节点挂载到city节点下 cityNode.appendChild(addNodeOption); } } }
functionparseXml(fileName){ //IE 内核的浏览器 if (window.ActiveXObject) { //创建 DOM 解析器 var doc = new ActiveXObject("Microsoft.XMLDOM"); doc.async = "false"; //加载 XML 文档, 获取 XML 文档对象 doc.load(fileName); return doc; } }