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手风琴效果
Aug 18 jQuery
jquery鼠标悬停导航下划线滑出效果
Sep 29 jQuery
jQuery实现滚动到底部时自动加载更多的方法示例
Feb 18 jQuery
jquery 通过ajax请求获取后台数据显示在表格上的方法
Aug 08 jQuery
解决jquery有正确返回值但不执行success函数的问题
Aug 20 jQuery
jQuery使用bind动态绑定事件无效的处理方法
Dec 11 jQuery
jQuery选择器之层次选择器用法实例分析
Feb 19 jQuery
jQuery pager.js 插件动态分页功能实例分析
Aug 02 jQuery
jQuery HTML设置内容和属性操作实例分析
May 20 jQuery
jQuery实现简单日历效果
Jul 05 jQuery
jQuery实现带进度条的轮播图
Sep 13 jQuery
jQuery treeview树形结构应用
Mar 24 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
PHP在Web开发领域的优势
2006/10/09 PHP
php 时间计算问题小结
2009/01/04 PHP
PHP实现显示照片exif信息的方法
2014/07/11 PHP
PHP mysqli_free_result()与mysqli_fetch_array()函数详解
2016/09/21 PHP
PHP观察者模式原理与简单实现方法示例
2017/08/25 PHP
实例讲解通过​PHP创建数据库
2019/01/20 PHP
学习YUI.Ext 第二天
2007/03/10 Javascript
入门基础学习 ExtJS笔记(一)
2010/11/11 Javascript
Jquery下attr和removeAttr的使用方法
2010/12/28 Javascript
js字符串截取函数substr substring slice使用对比
2013/11/27 Javascript
node.js中的querystring.stringify方法使用说明
2014/12/10 Javascript
javascript实现控制文字大中小显示
2015/04/28 Javascript
javascript每日必学之多态
2016/02/23 Javascript
AngularJs bootstrap搭载前台框架——js控制部分
2016/09/01 Javascript
Vue.js实现表格动态增加删除的方法(附源码下载)
2017/01/20 Javascript
AngularJS实现路由实例
2017/02/12 Javascript
Angular2实现自定义双向绑定属性
2017/03/22 Javascript
vue路由跳转时判断用户是否登录功能的实现
2017/10/26 Javascript
在vue中利用v-html按分号将文本换行的例子
2019/11/14 Javascript
JS跨浏览器解析XML应用过程详解
2020/10/16 Javascript
[05:41]2014DOTA2西雅图国际邀请赛 小组赛7月10日TOPPLAY
2014/07/10 DOTA
在Python下利用OpenCV来旋转图像的教程
2015/04/16 Python
Python基础中所出现的异常报错总结
2016/11/19 Python
详解Python正则表达式re模块
2019/03/19 Python
Django {{ MEDIA_URL }}无法显示图片的解决方式
2020/04/07 Python
H5调用相机拍照并压缩图片的实例代码
2017/07/20 HTML / CSS
Peter Alexander新西兰站:澳大利亚领先的睡衣设计师品牌
2016/12/10 全球购物
Linux面试经常问的文件系统操作命令
2016/10/04 面试题
会计实习期自我鉴定
2013/10/06 职场文书
机电一体化职业规划书
2014/01/07 职场文书
终止合同协议书
2014/04/17 职场文书
公司董事长岗位职责
2014/06/08 职场文书
2014年领导班子专项整治整改方案
2014/09/28 职场文书
2015年艾滋病防治工作总结
2015/05/22 职场文书
2015年秋季小班开学寄语
2015/05/27 职场文书
Redis 彻底禁用RDB持久化操作
2021/07/09 Redis