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中animate()的使用方法及解决$(”body“).animate({“scrollTop”:top})不被Firefox支持的问题
Apr 04 jQuery
jQuery使用unlock.js插件实现滑动解锁
Apr 04 jQuery
jquery.uploadView 实现图片预览上传功能
Aug 10 jQuery
zTree jQuery 树插件的使用(实例讲解)
Sep 25 jQuery
jQuery实现点击旋转,再点击恢复初始状态动画效果示例
Dec 11 jQuery
jQuery实现的鼠标拖动浮层功能示例【拖动div等任何标签】
Dec 29 jQuery
JS/jQuery实现获取时间的方法及常用类完整示例
Mar 07 jQuery
jQuery属性选择器用法实例分析
Jun 28 jQuery
js判断复选框是否选中的方法示例【基于jQuery】
Oct 10 jQuery
jQuery cookie的公共方法封装和使用示例
Jun 01 jQuery
jQuery实现鼠标拖拽登录框移动效果
Sep 13 jQuery
多种类型jQuery网页验证码插件代码实例
Jan 09 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
php检查是否是ajax请求的方法
2015/04/16 PHP
PHP一致性hash分布式算法封装类定义与用法示例
2018/08/04 PHP
基于jQuery的输入框无值自动显示指定数据的实现代码
2011/01/24 Javascript
读jQuery之一(对象的组成)
2011/06/11 Javascript
学习从实践开始之jQuery插件开发 菜单插件开发
2012/05/03 Javascript
用JS将搜索的关键字高亮显示实现代码
2013/11/08 Javascript
js正则表达exec与match的区别说明
2014/01/29 Javascript
jQuery头像裁剪工具jcrop用法实例(附演示与demo源码下载)
2016/01/22 Javascript
详解Javascript百度地图接口开发文档中的类和方法
2017/02/07 Javascript
使用Angular 6创建各种动画效果的方法
2018/10/10 Javascript
vue实现歌手列表字母排序下拉滚动条侧栏排序实时更新
2019/05/14 Javascript
使用layui的layer组件做弹出层的例子
2019/09/27 Javascript
重置Redux的状态数据的方法实现
2019/11/18 Javascript
H5+css3+js搭建带验证码的登录页面
2020/10/11 Javascript
Python模拟登陆实现代码
2017/06/14 Python
Python3.6 Schedule模块定时任务(实例讲解)
2017/11/09 Python
Pycharm 实现下一个文件引用另外一个文件的方法
2019/01/17 Python
python实现把两个二维array叠加成三维array示例
2019/11/29 Python
简单了解python装饰器原理及使用方法
2019/12/18 Python
Pycharm内置终端及远程SSH工具的使用教程图文详解
2020/03/19 Python
Python openpyxl模块实现excel读写操作
2020/06/30 Python
PyTorch如何搭建一个简单的网络
2020/08/24 Python
详解scrapy内置中间件的顺序
2020/09/28 Python
世界最大的私人旅行指南出版商:孤独星球
2016/08/23 全球购物
秦兵马俑教学反思
2014/02/07 职场文书
局火灾防控工作方案
2014/05/25 职场文书
我爱祖国演讲稿
2014/09/02 职场文书
2014年乡镇党建工作总结
2014/11/11 职场文书
2015大学生求职信范文
2015/03/20 职场文书
暂住证明怎么写
2015/06/19 职场文书
详解Flask开发技巧之异常处理
2021/06/15 Python
Pygame Draw绘图函数的具体使用
2021/11/17 Python
python模板入门教程之flask Jinja
2022/04/11 Python
Apache Hudi 加速传统的批处理模式
2022/04/24 Servers
Typescript类型系统FLOW静态检查基本规范
2022/05/25 Javascript
Redis基本数据类型哈希Hash常用操作命令
2022/06/01 Redis