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

发布时间 - 2026-01-11 01:48:11    点击率:

本文主要介绍使用 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+ajax实现省市区三级联动效果简单示例  # jQuery实现的省市县三级联动菜单效果完整实例  # 基于jQuery+JSON的省市二三级联动效果  # 中国地区三级联动下拉菜单效果分析  # jquery读取xml文件实现省市县三级联动的方法  # jQuery ajax实现省市县三级联动  # 省市区三级联动jquery实现代码  # 请选择  # 遍历  # 县市  # 给大家  # 门头沟区  # 平谷区  # 怀柔区  # 房山区  # 石景山区  # 顺义区  # 大兴区  # 通州区  # 昌平区  # 宣武区  # 崇文区  # 丰台区  # 西城区  # 东城区  # 文档  # 朝阳区 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: VIVO手机上del键无效OnKeyListener不响应的原因及解决方法  ,南京靠谱的征婚网站?  北京企业网站设计制作公司,北京铁路集团官方网站?  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  Laravel如何使用Livewire构建动态组件?(入门代码)  如何在腾讯云免费申请建站?  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  Java遍历集合的三种方式  网站建设要注意的标准 促进网站用户好感度!  Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置  实例解析angularjs的filter过滤器  HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】  如何在阿里云虚拟服务器快速搭建网站?  Laravel如何处理文件下载请求?(Response示例)  Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧  网站制作企业,网站的banner和导航栏是指什么?  太平洋网站制作公司,网络用语太平洋是什么意思?  Laravel如何优化应用性能?(缓存和优化命令)  如何在IIS服务器上快速部署高效网站?  想要更高端的建设网站,这些原则一定要坚持!  如何在服务器上配置二级域名建站?  Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法  Laravel如何与Pusher实现实时通信?(WebSocket示例)  网站制作大概多少钱一个,做一个平台网站大概多少钱?  如何快速搭建FTP站点实现文件共享?  Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录  javascript日期怎么处理_如何格式化输出  java获取注册ip实例  WordPress 子目录安装中正确处理脚本路径的完整指南  三星网站视频制作教程下载,三星w23网页如何全屏?  如何在阿里云虚拟主机上快速搭建个人网站?  HTML 中如何正确使用模板变量为元素的 name 属性赋值  SQL查询语句优化的实用方法总结  ,交易猫的商品怎么发布到网站上去?  谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复  活动邀请函制作网站有哪些,活动邀请函文案?  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?  如何解决hover在ie6中的兼容性问题  Laravel观察者模式如何使用_Laravel Model Observer配置  Laravel如何创建和注册中间件_Laravel中间件编写与应用流程  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  Laravel如何实现全文搜索功能?(Scout和Algolia示例)  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  免费网站制作appp,免费制作app哪个平台好?  Laravel如何发送系统通知?(Notification渠道示例)  Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】  公司网站制作价格怎么算,公司办个官网需要多少钱?  如何用IIS7快速搭建并优化网站站点?