jQuery实现简单三级联动效果


Posted in jQuery onSeptember 05, 2020

本文实例为大家分享了jQuery实现简单三级联动的具体代码,供大家参考,具体内容如下

首先写一个JSON数据

[
 {
  "province": "吉林省",
  "cities": [
   {
    "city": "长春市",
    "counties": ["朝阳区", "经济开发区", "高新区"]
   },
   {
    "city": "吉林市",
    "counties": ["东城区", "经济开发区", "老城区"]
   },

   {
    "city": "白山市",
    "counties": ["二道区", "河东区", "高新区"]
   }
  ]
 },
 {
  "province": "辽宁省",
  "cities": [
   {
    "city": "沈阳市",
    "counties": ["朝阳区", "经济开发区", "高新区"]
   },
   {
    "city": "大连市",
    "counties": ["东城区", "经济开发区", "老城区"]
   },
   {
    "city": "铁岭市",
    "counties": ["二道区", "河东区", "高新区"]
   }
  ]
 },
 {
  "province": "山东省",
  "cities": [
   {
    "city": "青岛市",
    "counties": ["朝阳区", "经济开发区", "高新区"]
   },
   {
    "city": "济南市",
    "counties": ["东城区", "经济开发区", "老城区"]
   },
   {
    "city": "威海市",
    "counties": ["二道区", "河东区", "高新区"]
   }
  ]
 }
]

然后用Ajax动态获取JSON文件中的数据

完整代码

<!DOCTYPE html>
<html lang="en">
 <head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>三级联动</title>
 </head>
 <body>
  <!-- 三级联动 - 两个二级联动 -->
  <select id="province">
   <option value="">---</option>
  </select>
  <select id="city">
   <option value="">---</option>
  </select>
  <select id="county">
   <option value="">---</option>
  </select>

  <script src="js/jquery-1.12.4.js"></script>
  <script src="../js/createXMLHttpRequest.js"></script>
  <script>
   var $province = $("#province");
   var $city = $("#city");
   var $county = $("#county");
   var json;
   $.getJSON("data/server1.json", function (data) {
    // 把data保存到json全局变量中
    json = data;
    // 遍历data数据
    $.each(data, function (index, obj) {
     // 获取所有的省份信息
     var provinceName = obj.province;
     //  console.log(provinceName);
     // 将省份信息添加到对应的select元素中
     $province.append(
      `<option value="${provinceName}">${provinceName}</option>`
     );
    });

    $province.change(function () {
     // 将城市下拉列表的选项清空
     $city.empty();
     $city.append(`<option value="">---</option>`);

     // 获取到所选择的城市的文本信息
     var provinceElementName = $(this).children("option:selected").text();
     //  console.log(provinceElementName);
     $.each(json, function (index, obj) {
      var provinceName = obj.province;
      // console.log(provinceName);
      if (provinceElementName === provinceName) {
       // 获取到城市数组集合
       var cities = obj.cities;
       // 遍历城市数组集合
       $.each(cities, function (index, obj) {
        // console.log(obj.city);
        // 获取到城市名称
        var cityName = obj.city;
        // 将该省对应的城市名称添加到对应的select中
        $city.append(
         `<option value="${cityName}">${cityName}</option>`
        );
       });
      }
     });
    });

    $city.change(function () {
     // 将区级下拉列表的选项清空
     $county.empty();
     $county.append(`<option value="">---</option>`);

     // 获取到所选择的城市的文本信息
     var cityElementName = $(this).children("option:selected").text();
     //  console.log(cityElementName);
     $.each(json, function (index, obj) {
      // 获取该省对应的所有的城市信息
      var cities = obj.cities;
      // console.log(cities);
      $.each(cities, function (index, cityObj) {
       //  console.log(cityObj.city);
       var cityName = cityObj.city;
       if (cityElementName === cityName) {
        // 获取到区级数组集合
        // console.log(cityObj.counties);
        var counties = cityObj.counties;
        // 遍历区级数组集合
        $.each(counties, function (index, value) {
         // 获取到区级名称
         //  console.log(value);
         // 将该城市对应的区级名称添加到对应的select元素中
         $county.append(`<option value="${value}">${value}</option>`);
        });
       }
      });
     });
    });
   });
  </script>
 </body>
</html>

效果如下

jQuery实现简单三级联动效果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

jQuery 相关文章推荐
jquery实现图片平滑滚动详解
Mar 22 jQuery
jQuery+PHP+Mysql实现抽奖程序
Apr 12 jQuery
jquery单击文字或图片内容放大并居中显示
Jun 23 jQuery
jquery.validate.js 多个相同name的处理方式
Jul 10 jQuery
jQuery实现简单日期格式化功能示例
Sep 19 jQuery
jQuery实现新闻播报滚动及淡入淡出效果示例
Mar 23 jQuery
JQuery搜索框自动补全(模糊匹配)功能实现示例
Jan 08 jQuery
Jquery遍历筛选数组的几种方法和遍历解析json对象,Map()方法详解以及数组中查询某值是否存在
Jan 18 jQuery
JS/jQuery实现获取时间的方法及常用类完整示例
Mar 07 jQuery
JQuery实现ul中添加LI和删除指定的Li元素功能完整示例
Oct 16 jQuery
jquery添加div实现消息聊天框
Feb 08 jQuery
jquery自定义组件实例详解
Dec 31 jQuery
如何基于jQuery实现五角星评分
Sep 02 #jQuery
jQuery中getJSON跨域原理的深入讲解
Sep 02 #jQuery
Jquery $.map使用方法实例详解
Sep 01 #jQuery
JQuery基于FormData异步提交数据文件
Sep 01 #jQuery
JQuery使用数组遍历跳出each循环
Sep 01 #jQuery
JS JQuery获取data-*属性值方法解析
Sep 01 #jQuery
jQuery实现动态加载瀑布流
Sep 01 #jQuery
You might like
实现 win2003 下 mysql 数据库每天自动备份
2006/12/06 PHP
zf框架的zend_cache缓存使用方法(zend框架)
2014/03/14 PHP
PHP代码判断设备是手机还是平板电脑(两种方法)
2015/10/19 PHP
PHP yii实现model添加默认值的方法(两种方法)
2016/11/10 PHP
如何打开php的gd2库
2017/02/09 PHP
laravel框架实现去掉URL中index.php的方法
2019/10/12 PHP
学习YUI.Ext 第六天--关于树TreePanel(Part 2异步获取节点)
2007/03/10 Javascript
JavaScript两种跨域技术全面介绍
2014/04/16 Javascript
javascript动态控制服务器控件实例
2014/09/05 Javascript
jQuery的one()方法用法实例
2015/01/19 Javascript
jQuery的事件委托实例分析
2015/07/15 Javascript
JavaScript校验Number(4,1)格式的数字实例代码
2017/03/13 Javascript
vue跨域解决方法
2017/10/15 Javascript
详解React中传入组件的props改变时更新组件的几种实现方法
2018/09/13 Javascript
JS+php后台实现文件上传功能详解
2019/03/02 Javascript
详解js创建对象的几种方法及继承
2019/04/12 Javascript
JS常见内存泄漏及解决方案解析
2020/05/30 Javascript
[01:25:09]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第二场
2014/05/24 DOTA
[03:06]V社市场总监Dota2项目负责人Erik专访:希望更多中国玩家加入DOTA2
2014/07/11 DOTA
[57:18]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#3VP VS VG
2016/03/03 DOTA
用Python制作检测Linux运行信息的工具的教程
2015/04/01 Python
python编码总结(编码类型、格式、转码)
2016/07/01 Python
Python(TensorFlow框架)实现手写数字识别系统的方法
2018/05/29 Python
windows系统中Python多版本与jupyter notebook使用虚拟环境的过程
2019/05/15 Python
django框架用户权限中的session缓存到redis中的方法
2019/08/06 Python
python爬虫 urllib模块url编码处理详解
2019/08/20 Python
Django+uni-app实现数据通信中的请求跨域的示例代码
2019/10/12 Python
Python视频编辑库MoviePy的使用
2020/04/01 Python
老生常谈CSS中的长度单位
2016/06/27 HTML / CSS
Html5 web本地存储实例详解
2016/07/28 HTML / CSS
GUESS德国官网:美国牛仔服装品牌
2017/02/14 全球购物
sort命令的作用和用法
2013/08/25 面试题
学习十八大演讲稿
2014/09/15 职场文书
2019开业庆典剪彩仪式主持词!
2019/07/22 职场文书
2019职场单身人才调研报告:互联网行业单身比例最高
2019/08/07 职场文书
数据库之SQL技巧整理案例
2021/07/07 SQL Server