当前位置: 移动技术网 > IT编程>开发语言>JavaScript > Jquery+Ajax+xml实现中国地区选择三级联动菜单效果(推荐)

Jquery+Ajax+xml实现中国地区选择三级联动菜单效果(推荐)

2017年12月12日  | 移动技术网IT编程  | 我要评论
本文主要介绍使用 jquery+ajax+xml,首先需要一个包含我国所有地图信息的xml文档。 此处选用的xml文档(共1000多行)主要结构如下: <

本文主要介绍使用 jquery+ajax+xml,首先需要一个包含我国所有地图信息的xml文档。

此处选用的xml文档(共1000多行)主要结构如下:

<?xml version="1.0" encoding="utf-8"?>
<area country="china">
 <province id="1" provinceid="110000" province="北京市">
  <city cityid="110100" city="市辖区">
   <piecearea pieceareaid="110101" piecearea="东城区" />
   <piecearea pieceareaid="110102" piecearea="西城区" />
   <piecearea pieceareaid="110103" piecearea="崇文区" />
   <piecearea pieceareaid="110104" piecearea="宣武区" />
   <piecearea pieceareaid="110105" piecearea="朝阳区" />
   <piecearea pieceareaid="110106" piecearea="丰台区" />
   <piecearea pieceareaid="110107" piecearea="石景山区" />
   <piecearea pieceareaid="110108" piecearea="海淀区" />
   <piecearea pieceareaid="110109" piecearea="门头沟区" />
   <piecearea pieceareaid="110111" piecearea="房山区" />
   <piecearea pieceareaid="110112" piecearea="通州区" />
   <piecearea pieceareaid="110113" piecearea="顺义区" />
   <piecearea pieceareaid="110114" piecearea="昌平区" />
   <piecearea pieceareaid="110115" piecearea="大兴区" />
   <piecearea pieceareaid="110116" piecearea="怀柔区" />
   <piecearea pieceareaid="110117" piecearea="平谷区" />
  </city>
<province>

制作对应的表单,根据设置选择省/市的动作:

<h2>地区三级联动菜单</h2>
  省:<select id="province" onchange="showcity()"><option value="0">-请选择-</option></select>
  市:<select id="city" onchange="showdistrict()"><option value="0">-请选择-</option></select>
  地区:<select id="district"><option value="0">-请选择-</option></select>

以下是js代码行

//声明一个全局变量,用于存储第一次请求的xml信息,避免后续多次频繁请求xml
    var xmldom =null;
    //获取并显示省份信息
    function showprovince(){
      //使用ajax去服务器获得xml文件里面的省份信息
      $.ajax({
        url:'./chinaarea.xml',
        //data:
        datatype:'xml',//相当于调用responsexml
        type:'get',
        success:function(msg){
          //将返回的xml信息赋予xmldom
          xmldom = msg;
          //获得province 元素节点对象
          var prov = $(msg).find('province');
          //遍历省份信息
          prov.each(function(k,v){
            var nm = $(this).attr('province');
            var id = $(this).attr('provinceid');
            //追加到指定的节点
            $('#province').append("<option value="+id+">"+nm+"</option>");
          });
        }

      });
    }
    //网页加载显示省份信息  
    $(function(){
      showprovince();
    });
    function showcity(){
      //获取 省份 的id
      var pid = $('#province option:selected').val();
      //根据xmldom信息 找到指定的省份节点
      var xml_province = $(xmldom).find('province[provinceid='+pid+']');
      // 获取对应所有县市节点
      var city = $(xml_province).find('city');
      //在遍历追加前,先清空此前已经显示的信息
      $('#city').empty();
      $('#city').append('<option value="0">-请选择-</option>');
      //遍历追加县市
      city.each(function(k,v){
        var nm = $(this).attr('city');
        var id = $(this).attr('cityid');
        $('#city').append('<option value='+id+'>'+nm+'</option>');
      });
    }
    //以下函数的逻辑与showcity()的逻辑一致
    function showdistrict(){
      //获取 县市 的id
      var cid = $('#city option:selected').val();
      //根据xmldom信息 找到指定的县市节点
      var xml_city = $(xmldom).find('city[cityid='+cid+']');
      // 获取对应所有地区节点
      var district = $(xml_city).find('piecearea');
      $('#district').empty();
      $('#district').append('<option value="0">-请选择-</option>');
      district.each(function(k,v){
        var nm = $(this).attr('piecearea');
        var id = $(this).attr('pieceareaid');
        $('#district').append('<option value='+id+'>'+nm+'</option>');
      });
    }

以上这篇jquery+ajax+xml实现中国地区选择三级联动菜单效果(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持移动技术网。

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网