javascript读取xml文件实现二级菜单联动

                                                    javascript读取xml文件实现二级菜单联动

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>JavaScript解析XML</title>
</head>
<body>
<div align="center">
  <h1>JavaScript解析XML</h1>
  <select id="province">
    <option>---请选择---</option>
  </select>
  <select id="city">
    <option>---请选择---</option>
  </select>
</div>
</body>
</html>
<script type="text/javascript">
window.onload = function(){
 var XMLDom = null;
 try{
  //针对IE浏览器创建一个空的DOM对象
  XMLDom = new ActiveXObject("Microsoft.XMLDOM");
  }catch(error){
   //针对火狐及其它浏览器创建一个空的DOM对象
   xmlDom = document.implementation.createDocument("","",null);
   }
 //关闭异步加载,确保在文档完全加载完成之前解析器不会继续脚本的执行式
 XMLDom.async="false";
 //解析器加载名为city.xml的文件
 XMLDom.load("city.xml");
 //获取根节点名称cities
 var root = XMLDom.documentElement;
 //获取根节点的子节点省份节点provinces
 var provinces = root.childNodes;
 //获取本页面中provice的节点对象
 var province = document.getElementById("province");
 for(i=0;i<provinces.length;i++){
  //获取省份的名称
  var name = provinces[i].getAttribute("name");
  //创建option节点
  var op = document.createElement("option");
  //创建文本节点并添加到option节点中
  op.appendChild(document.createTextNode(name));
  //将option添加到province中
  province.appendChild(op);
  }
 province.onchange = function(){
  //获取province的子节点的集合
  var optio = province.options;
  //alert(province.selectedIndex);获取当前被点击对象的下标,下标从0开始
  //获取当前被选中的文本内容
  var name = optio[province.selectedIndex].innerHTML;
  for(i=0;i<provinces.length;i++){
   //获取省份的名称
   if(provinces[i].getAttribute("name")==name){
    //获取省节点的子节点
    var arr = provinces[i].childNodes;
    //获取城市节点节点
    var city = document.getElementById("city");
    //设置城市节点的子节点的初始个数
    city.length=1;
    //遍历省节点的子节点
    for(i=0;i<arr.length;i++){
     //创建option节点
     var op = document.createElement("option");
     //创建文本节点并添加到option节点中
     op.appendChild(document.createTextNode(arr[i].firstChild.nodeValue));
     //将option添加到city节点中
     city.appendChild(op);
     }
    }
   }
  }
 }
</script>

欢迎访问!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值