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.load()和Jsp的include的区别
Apr 12 jQuery
jquery实现放大镜简洁代码(推荐)
Jun 08 jQuery
jquery+css实现下拉列表功能
Sep 03 jQuery
jQuery实现html双向绑定功能示例
Oct 09 jQuery
jquery+ajaxform+springboot控件实现数据更新功能
Jan 22 jQuery
[原创]jQuery实现合并/追加数组并去除重复项的方法
Apr 11 jQuery
jQuery实现table表格信息的展开和缩小功能示例
Jul 21 jQuery
jQuery实现基本淡入淡出效果的方法详解
Sep 05 jQuery
jQuery实现高级检索功能
May 28 jQuery
jquery实现上传文件进度条
Mar 26 jQuery
jQuery 移除事件的方法
Jun 20 jQuery
jQuery列表动态增加和删除的实现方法
Nov 05 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生成随机密码自定义函数代码(简单快速)
2014/05/10 PHP
Codeigniter整合Tank Auth权限类库详解
2014/06/12 PHP
PHP date函数常用时间处理方法
2015/05/11 PHP
yii使用activeFileField控件实现上传文件与图片的方法
2015/12/28 PHP
php操作路径的经典方法(必看篇)
2016/10/04 PHP
CSDN轮换广告图片轮换效果
2007/03/27 Javascript
jQuery过滤选择器用法分析
2015/02/10 Javascript
Javascript设计模式之观察者模式的多个实现版本实例
2015/03/03 Javascript
jQuery中大家不太了解的几个方法
2015/03/04 Javascript
JS实现兼容性较好的随屏滚动效果
2015/11/09 Javascript
javascript图片滑动效果实现
2021/01/28 Javascript
Javascript实现图片不间断滚动的代码
2016/06/22 Javascript
微信小程序中使元素占满整个屏幕高度实现方法
2016/12/14 Javascript
vue 组件的封装之基于axios的ajax请求方法
2018/08/11 Javascript
JS实现十分钟倒计时代码实例
2018/10/18 Javascript
JS前端知识点总结之页面加载事件,数组操作,DOM节点操作,循环和分支
2019/07/04 Javascript
vue 中 命名视图的用法实例详解
2019/08/14 Javascript
JS如何调用WebAssembly编译出来的.wasm文件
2020/11/05 Javascript
wxPython窗口中文乱码解决方法
2014/10/11 Python
python编程使用selenium模拟登陆淘宝实例代码
2018/01/25 Python
Python实现字典(dict)的迭代操作示例
2018/06/05 Python
python实现猜单词游戏
2020/05/22 Python
利用HTML5绘制点线面组成的3D图形的示例
2015/05/12 HTML / CSS
html5响应式开发自动计算fontSize的方法
2020/01/13 HTML / CSS
Strawberrynet草莓网新加坡站:护肤、彩妆、香水及美发产品
2018/08/31 全球购物
Cinque网上商店:德国服装品牌
2019/03/17 全球购物
在校生党员自我评价
2013/09/25 职场文书
节约用水演讲稿
2014/05/21 职场文书
安全资料员岗位职责范本
2014/06/28 职场文书
2014年除四害工作总结
2014/12/06 职场文书
财务会计求职信范文
2015/03/20 职场文书
英文产品推荐信
2015/03/27 职场文书
奖学金主要事迹范文
2015/11/04 职场文书
心得体会格式及范文
2016/01/25 职场文书
直播实况, OMG破敌三路五十分钟大战神技局摩托车
2022/04/01 DOTA
Python接口自动化之文件上传/下载接口详解
2022/04/05 Python