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


相关推荐: nginx修改上传文件大小限制的方法  Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置  Laravel如何实现API资源集合?(Resource Collection教程)  bing浏览器学术搜索入口_bing学术文献检索地址  小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像  绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信  Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】  如何快速搭建高效服务器建站系统?  作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】  高端智能建站公司优选:品牌定制与SEO优化一站式服务  如何用PHP快速搭建CMS系统?  DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解  黑客如何利用漏洞与弱口令入侵网站服务器?  简单实现jsp分页  Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】  如何在不使用负向后查找的情况下匹配特定条件前的换行符  Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理  Laravel如何与Pusher实现实时通信?(WebSocket示例)  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体  浅谈redis在项目中的应用  香港服务器选型指南:免备案配置与高效建站方案解析  高端建站如何打造兼具美学与转化的品牌官网?  Laravel如何使用Livewire构建动态组件?(入门代码)  Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试  Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】  利用 Google AI 进行 YouTube 视频 SEO 描述优化  Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)  android nfc常用标签读取总结  如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环  Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧  JavaScript如何实现路由_前端路由原理是什么  Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册  HTML 中如何正确使用模板变量为元素的 name 属性赋值  七夕网站制作视频,七夕大促活动怎么报名?  通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】  JavaScript中如何操作剪贴板_ClipboardAPI怎么用  5种Android数据存储方式汇总  新三国志曹操传主线渭水交兵攻略  微信小程序 五星评分(包括半颗星评分)实例代码  Windows Hello人脸识别突然无法使用  Laravel如何发送系统通知?(Notification渠道示例)  Laravel如何实现全文搜索功能?(Scout和Algolia示例)  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  网易LOFTER官网链接 老福特网页版登录地址  悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】  如何在建站之星绑定自定义域名?  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?