实现省、县三级联动的Javascript解析方法

实现省、县三级联动的Javascript解析方法
本文介绍了利用javascript解析xml实现省、县三级联动的方法,供大家参考,具体实现方法如下:

(此方法适用于任何常用的浏览器)

<!——
功能getxmldoc(){
VaR xmlDoc;
尝试{
创建一个空的微软XML文档对象到IE浏览器
xmlDoc =新的ActiveX对象(微软。XMLDOM );
} catch(错误){
尝试{
在XML解析器中的Firefox和其他浏览器(Opera)中创建一个空的XML文档对象。
XmlDoc=document.implementation.createDocument (
} catch(ER){
警报()浏览器的版本太低,应该更新。
}
}
关闭异步加载,以确保在解析器不继续执行脚本之前加载文档。
XmlDoc。async = false;
加载/解析器命名为XML文档
xmldoc.load(的城市。XML);
返回xmlDoc;
}
窗口。指针函数(){
VaR getxmldoc xmlDoc =();
用于文件xml的根节点
Var root=xmlDoc.documentElement;
以下节点获得XML文件的根节点。
VAR省= root.childnodes;
获取页面,显示在省、市、县的DOM控件对象中
Var sheng=document.getElementById (Sheng);
VaR石= document.getelementbyid(石);
var =西安document.getelementbyid(西安);
遍历所有省份
对于(var i = 0;i < provinces.length;i++){
如果这个节点是元素节点检查 / /是为了实现不同浏览器之间的兼容性(1 node.element_node ---- 1是元素节点的节点)
如果(省{我}。节点类型= = 1){
创建一个选项节点对象
无功shenpt = document.createelement(选项);
选项 / /添加文本节点(document.createtextnode shenpt.appendchild省(省{我}。getttr三(名称)));
选项 / /设置shenpt.setattribute属性节点(价值
添加到DOM省中的页面
Sheng.appendChild(shenpt);
}
}
当该省更改节点时触发的事件
Sheng。onchange =函数(){
获取该省的选项对象所有节点。
VaR笙= sheng.options;
SelectedIndex / /得到选择所选对象(下标值)
Num = shengs.selectedindex VaR;
空城市
施法长度= 0;
西安,长度= 0;
XML的 / /邮政编码的选择根据省获得内容的价值相应文件的价值
无功ppostcode =笙{民}。getAttribute(价值);
遍历所有省份
对于(var i = 0;i < provinces.length;i++){
如果这个节点是元素节点检查 / /是为了实现不同浏览器之间的兼容性(1 node.element_node ---- 1是元素节点的节点)
如果(省{我}。节点类型= = 1){
价值的HTML / /价值依据内容获得邮政编码值对应的文件
VaR邮编=省{我}对象(邮政编码);
如果(邮编= = ppostcode){
获取节点节点省。
VaR城市=省{我}子;

施法长度= 0;
遍历所有城市
对于(var i = 0;i < cities.length;i++){
如果这个节点是元素节点检查 / /是为了实现不同浏览器之间的兼容性(1 node.element_node ---- 1是元素节点的节点)
如果(城市{我}。节点类型= = 1){
创建一个选项节点对象
无功shiopt = document.createelement(选项);
shiopt.appendchild选项 / /添加文本节点(document.createtextnode(城市{我}对象(名称)));
为选项节点设置属性
shiopt.setattribute(价值
添加到页面对象中
shi.appendchild(shiopt);
}
}
打破;
}
}
}
}
当节点事件触发变化时
石。onchange =函数(){
获取城市的选项对象所有节点的集合。
VaR莳= shi.options;
SelectedIndex / /得到选择所选对象(下标值)
Num = shis.selectedindex VaR;
相应的邮编 / /得到的值根据XML文件的价值选择的内容
无功spostcode =莳{民}。getAttribute(价值);
遍历所有省份
对于(var i = 0;i < provinces.length;i++){
如果这个节点是元素节点检查 / /是为了实现不同浏览器之间的兼容性(1 node.element_node ---- 1是元素节点的节点)
如果(省{我}。节点类型= = 1){
获取节点节点省。
VaR城市=省{我}子;
遍历所有城市
对于(var j = 0;J < cities.length;j++){
如果这个节点是元素节点检查 / /是为了实现不同浏览器之间的兼容性(1 node.element_node ---- 1是元素节点的节点)
如果(城市{ } = = J。节点类型1){
价值的HTML / /价值文件对应的市根据内容得到邮政编码值
VaR邮编=城市{ J }。getAttribute(邮政编码);
如果(邮编= = spostcode){

西安,长度= 0;
节点节点访问锡蒂
VaR的面积=城市{ }子J;
遍历所有区域(县)
对于(var k = 0;K<areas.length;K+){
如果这个节点是元素节点检查 / /是为了实现不同浏览器之间的兼容性(1 node.element_node ---- 1是元素节点的节点)
如果(区{ } = = 1 K。NodeType){
创建一个选项节点对象
无功xianopt = document.createelement(选项);
将文本添加到选项区域节点
Xianopt.appendChild(document.createtextnode(区{ k }。getAttribute(名称))));
为选项节点设置属性
Xianopt.setAttribute(价值
添加到DOM页面中
Xian.appendChild(xianopt);
}
}
打破;
}
}
}
}
}
}
}

xml文件(简写本)


希望本文能对大家的javascript程序设计有所帮助。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部