Java乔晓松-js解析xml文件实现select二级联动
2013-03-13 23:36
656 查看
xml文档:
<?xml version="1.0" encoding="UTF-8"?>
<china>
<province name="请选择城市">
<city>请选择市区</city>
</province>
<province name="北京市">
<city>海淀区</city>
<city>朝阳区</city>
<city>大兴区</city>
<city>昌平区</city>
</province>
<province name="天津市">
<city>北辰区</city>
<city>和平区</city>
<city>虹桥区</city>
<city>AA区</city>
</province>
<province name="上海市">
<city>BB区</city>
<city>CC区</city>
<city>DD区</city>
<city>MM区</city>
</province>
</china>
js文件的原码:
window.onload = function() {
var xmlDoc = getXmlDocument("./js/citys.xml");
// alert(xmlDoc);
var china = xmlDoc.documentElement;
// alert(china);
var provincesXMLNode = china.getElementsByTagName("province");
var provinceHTMLNode = $("province");
var cityHTMLNode = $("city");
for ( var i = 0; i < provincesXMLNode.length; i++) {
var provinceXMLNode = provincesXMLNode[i];
var provinceXMLNodeName = provinceXMLNode.getAttribute("name");
var option = document.createElement("option");
option.setAttribute("value", provinceXMLNodeName);
var optionText = document.createTextNode(provinceXMLNodeName);
option.appendChild(optionText);
provinceHTMLNode.appendChild(option);
}
provinceHTMLNode.onchange = function() {
var cNodes = provinceHTMLNode.childNodes;
for(var i=0;i<cNodes.length;i++){
var optionselect = cNodes[i];
if(optionselect.nodeType==1){
if(optionselect.selected){
var proname = optionselect.getAttribute("value");
for(var k=0;k<provincesXMLNode.length;k++){
var proXML = provincesXMLNode[k];
var provalue = proXML.getAttribute("name");
if(proname==provalue){
for(var jj=0;jj<cityHTMLNode.childNodes.length;){
cityHTMLNode.removeChild(cityHTMLNode.childNodes[jj]);
}
var cityXMLNode = proXML.childNodes;
//遍历
for(var n=0;n<cityXMLNode.length;n++){
var cXMLNode=cityXMLNode
;
if(cXMLNode.nodeType==1){
//alert();
var cityop = document.createElement("option");
var cityopTextNode = document.createTextNode(cXMLNode.firstChild.nodeValue);
cityop.appendChild(cityopTextNode);
cityHTMLNode.appendChild(cityop);
}
}
}
}
}
}
}
};
};
function $(id) {
return document.getElementById(id);
}
function getXmlDocument(fileName) {
var xmlDomcument;
try {
xmlDomcument = new ActiveXObject("Microsoft.XMLDOM");
} catch (e) {
try {
xmlDomcument = document.implementation.createDocument("", "", null);
} catch (e) {
alert("浏览器版本过低。。。。");
}
}
// 关闭异步加载,确保完全加载再解析
xmlDomcument.async = false;
// 装载文件
xmlDomcument.load(fileName);
return xmlDomcument;
}
html页面的原码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>js_city.html</title>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
<script type="text/javascript" src="./js/js_xml.js"></script>
</head>
<body>
<div align="center">
<select id="province"></select>
<select id="city">
<option>请选择市区</option>
</select>
</div>
</body>
</html>
相关文章推荐
- 二级联动效果实现(在javascript中解析xml文件添加到html(select)中)
- js实现HTML中Select二级联动
- JS+html 实现select二级联动菜单
- 用js解析xml实现省市二级联动
- js解析xml文件,实现省市区三级联动
- js实现HTML中Select二级联动的实例
- javascript-解析xml文件-在html中实现二级联动分析及案例
- IE、FireFox、Opera全兼容的JS解析XML文件实现省、市、县(区)三级联动效果
- jquery使用jquerydoubleselectmin.js实现二级菜单联动
- js解析xml文件并实现省市的二级连动分析案例
- Java基础知识:Java实现Map集合二级联动3
- java实现的二级联动菜单效果
- javascirpt解析xml并实现省市二级联动
- 实现无刷新闪烁二级联动下拉菜单(js实现)
- Java乔晓松-利用JavaScript实现js对user用户的分页和实现js对用户的增删改查操作
- VUE2 前端实现 静态二级省市联动选择select的示例
- js实现的全国省市二级联动下拉选择菜单完整实例
- Java实现Map集合二级联动示例-----带界面--------------
- Java基础知识:Java实现Map集合二级联动4
- js实现的下拉框二级联动效果