JS和Ajax 实现三级联动的下拉选择

            1.首先,你需要在HTML  页面里面设置三个下拉菜单 代码如下

    

    
         
 
 

然后我们 首先使用Ajax从一个XML 文件中拉取数据,这里使用Ajax的作用也就是如此。

    
      function tel(){
	 var tel = false;
	  if(window.XMLHttpRequest){
		tel = new XMLHttpRequest();
	  }else{
		tel = new window.ActiveXObject('Microsoft.XMLHTTP');
	  }
	 return tel;
     }
 

在HTML中使用Ajax 的函数

   
     <script type="text/javascript" src="tel.js"></script>

剩余的就是在HTML页面中添加我们的Js代码,以实现选择前一个后,自动改变后一个

  
   <script type="text/javascript">var nokia = tel();
    var xmldoc;
    function init(){
        nokia.open('GET','area.xml',true);
        nokia.onreadystatechange = function (){
            if(this.readyState == 4 && this.status == 200){
                xmldoc = this.responseXML;
                var guo = xmldoc.getElementsByTagName('中国')[0];
                var shengList = guo.childNodes;
                var sheng = document.getElementById('slt1');                
                listAppend(shengList,sheng);                
            }            
        }
        nokia.send(null);
    }
    function listAppend(list,_area){
        for(var i=0,len=list.length;i < len;i++){
            var optText = document.createTextNode(list[i].nodeName);
            var opt = cjOpt(optText);                
            _area.appendChild(opt);
        }
    }
    function cjOpt(optText){
        var opt = document.createElement('option');
        opt.appendChild(optText);
        opt.setAttribute('value',optText.nodeValue);
        return opt;
    }
    function xzSheng(){
        xSheng = xz_zx('slt1');
        sheng = xmldoc.getElementsByTagName(xSheng)[0];
        shiList = sheng.childNodes;
        //清理市和县级的列表
        var shi = document.getElementById('slt2');
        clear_zx('slt2');
        clear_zx('slt3');
        listAppend(shiList,shi);
    }
    function xzShi(){
        xshi = xz_zx('slt2');
        shi = xmldoc.getElementsByTagName(xshi)[0];
        xianList = shi.childNodes;
        xian = document.getElementById('slt3');
        //清理县级的列表
        clear_zx('slt3'); 
        listAppend(xianList,xian);
    }
    //清理中心
    function clear_zx(str){
        var list = document.getElementById(str);
        if(list.length>0){
            for(var u=list.length;u>0;u--){
                list.remove(u);
            }
        }  
    }
    //xz_zx
    function xz_zx(str){
        var list = document.getElementById(str);
        var num = list.selectedIndex;
        var _area = list.options[num].value;
        return _area;
    }</script>    

最后我们需要的就是创建一个XML文件,实现从里面读取数据。 附XML代码:

    <?xml version="1.0" encoding="utf-8" ?> 
        <中国><北京><北京市><海淀/><上地/><广西><南宁><宁明/><我家/>
   

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值