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


Posted in jQuery onJune 09, 2017

本文主要介绍使用 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实现中国地区选择三级联动菜单效果(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

jQuery 相关文章推荐
jQuery实现 RadioButton做必选校验功能
Jun 15 jQuery
jquery+css实现简单的图片轮播效果
Aug 07 jQuery
jquery select插件异步实时搜索实例代码
Oct 20 jQuery
jQuery读取本地的json文件(实例讲解)
Oct 31 jQuery
jQuery pjax 应用简单示例
Sep 20 jQuery
jQuery动态操作表单示例【基于table表格】
Dec 06 jQuery
详解JavaScript原生封装ajax请求和Jquery中的ajax请求
Feb 14 jQuery
jquery 时间戳转日期过程详解
Oct 12 jQuery
jQuery实现可编辑的表格
Dec 11 jQuery
jQuery实现移动端图片上传预览组件的方法分析
May 01 jQuery
jQuery实现移动端下拉展现新的内容回弹动画
Jun 24 jQuery
JQuery通过键盘控制键盘按下与松开触发事件
Aug 07 jQuery
jQuery Validate表单验证插件实现代码
Jun 08 #jQuery
jquery Ajax实现Select动态添加数据
Jun 08 #jQuery
jquery实现放大镜简洁代码(推荐)
Jun 08 #jQuery
jQuery+ajax实现局部刷新的两种方法
Jun 08 #jQuery
jQuery 添加样式属性的优先级别方法(推荐)
Jun 08 #jQuery
jquery dataTable 后台加载数据并分页实例代码
Jun 07 #jQuery
jQuery用户头像裁剪插件cropbox.js使用详解
Jun 07 #jQuery
You might like
天使彦史上最神还原,性别曝光的那一刻,百万网友恋爱了
2020/03/02 国漫
百事可乐也出咖啡了 双倍咖啡因双倍快乐
2021/03/03 咖啡文化
如何在PHP中使用Oracle数据库(1)
2006/10/09 PHP
php htmlentities和htmlspecialchars 的区别
2008/08/18 PHP
CI框架中zip类应用示例
2014/06/17 PHP
详解ThinkPHP3.2.3验证码显示、刷新、校验
2016/12/29 PHP
php使用curl代理实现抓取数据的方法
2017/02/03 PHP
PHP ADODB生成HTML表格函数rs2html功能【附错误处理函数用法】
2018/05/29 PHP
Laravel 默认邮箱登录改成用户名登录的实现方法
2019/08/12 PHP
js 代码集(学习js的朋友可以看下)
2009/07/22 Javascript
javascript全局变量封装模块实现代码
2012/11/28 Javascript
js之ActiveX控件使用说明 new ActiveXObject()
2014/03/03 Javascript
详解JavaScript语言的基本语法要求
2015/11/20 Javascript
Javascript 详解封装from表单数据为json串进行ajax提交
2017/03/29 Javascript
js判断用户是输入的地址请求的路径(实例讲解)
2017/07/18 Javascript
VUE中的无限循环代码解析
2017/09/22 Javascript
Bootstrap框架建立树形菜单(Tree)的实例代码
2017/10/30 Javascript
vue项目部署上线遇到的问题及解决方法
2018/06/10 Javascript
jQuery实现轮播图效果
2019/11/26 jQuery
vue通过v-html指令渲染的富文本无法修改样式的解决方案
2020/05/20 Javascript
Python splitlines使用技巧
2008/09/06 Python
利用Python写一个爬妹子的爬虫
2018/06/08 Python
基于python解线性矩阵方程(numpy中的matrix类)
2019/10/21 Python
django从后台返回html代码的实例
2020/03/11 Python
自定义实现 PyQt5 下拉复选框 ComboCheckBox的完整代码
2020/03/30 Python
Python爬虫工具requests-html使用解析
2020/04/29 Python
python爬虫把url链接编码成gbk2312格式过程解析
2020/06/08 Python
Pycharm调试程序技巧小结
2020/08/08 Python
Selenium结合BeautifulSoup4编写简单的python爬虫
2020/11/06 Python
幼师自我鉴定范文
2013/10/01 职场文书
绿色学校实施方案
2014/03/31 职场文书
科技之星事迹材料
2014/06/02 职场文书
拔河比赛口号
2014/06/10 职场文书
三八妇女节标语
2014/10/09 职场文书
征求意见函
2015/06/05 职场文书
Python中常见的反爬机制及其破解方法总结
2021/06/10 Python