• jQuery简单的省市区县三级联动案例


    简单的省市区三级联动,适合初学者入门学习的案例

    目录结构如下: 三级联动.html 跟 JS文件夹是同个级别

    效果图如下:

    HTML代码:

     1 <style type="text/css">
     2     *{margin:0;padding:0;}
     3     .selectAll
     4       { width:400px;
     5          margin:100px auto;
     6       }
     7 </style>
     8 
     9 <div class="selectAll">
    10     <!--省份-->
    11     <select class="province">
    12         <option>请选择</option>
    13     </select>
    14     <!--城市-->
    15     <select class="city">
    16         <option>请选择</option>
    17     </select>
    18     <!--地区-->
    19     <select class="district">
    20         <option>请选择</option>
    21     </select>
    22 </div>

    JS代码:

     1 <script src='./js/jquery.min.js'></script>
     2 <script type="text/javascript">
     3 $(function(){
     4 //    JSON文件放的位置,根据你放的位置更改
     5     var url = './js/district.json';
     6 //    JSON数据为数组,将返回的值赋值给areaData,一次性请求完成
     7     var areaData = null;
     8 //    获取到的数据用模板存放到templateOption,进行DOM重绘
     9     var templateOption = "";
    10 //
    11     var province = $('.province');
    12     var city = $('.city');
    13     var district = $('.district');
    14 //    获取JSON格式
    15     $.getJSON(url,function (data) {
    16         areaData = data;
    17         provinceFun();
    18     })
    19 //    省份
    20     var provinceFun = function(){
    21         $.each(areaData,function(index,value){
    22             templateOption += "<option value='"+value.p+"'>"+value.p+"</option>";
    23         })
    24         province.html(templateOption);
    25         cityFun();
    26     };
    27 //    城市
    28     var cityFun = function(){
    29         templateOption = "";
    30 //        获取省份选取的索引,用get(0)是因为获取$('.province')的第一个,即使$('.province')只有一个。下面也一样。
    31         var p = province.get(0).selectedIndex;
    32 //        根据JSON格式,获取选取省份对应的市的数组
    33         $.each(areaData[p].c,function(index,value){
    34             templateOption += "<option value='"+value.ct+"'>"+value.ct+"</option>";
    35         })
    36 //        对城市的option选项进行重绘
    37         city.html(templateOption);
    38 //        城市选择好了,触发区县
    39         districtFun();
    40     };
    41 //    区县
    42     var districtFun = function(){
    43         templateOption = "";
    44         var p = province.get(0).selectedIndex;
    45         var c = city.get(0).selectedIndex;
    46 //        若区县没有,不显示出来
    47         if(areaData[p].c[c].d == undefined){
    48             district.css('display','none');
    49         }else{
    50             district.css('display','inline');
    51             $.each(areaData[p].c[c].d,function(index,value){
    52                 templateOption += "<option value='"+value.dt+"'>"+value.dt+"</option>";
    53             })
    54             district.html(templateOption);
    55         }
    56 
    57     };
    58 //    点击省份,触动市的变化
    59     province.change(function(){
    60         cityFun();
    61     });
    62 //    点击市,触动地区的变化
    63     city.change(function(){
    64         districtFun();
    65     })
    66 })
    67 </script>
  • 相关阅读:
    经典解析23 种设计模式
    如何用手机赚钱——admob
    解决solaris zfs文件系统内存占用过高
    在运行suncluster的数据库服务器上遇到oracle故障的解决办法
    对oracle用户进行资源限制
    Linux下TortoiseGit 配置管理环境搭建
    Linux系统非root帐号执行ssh发生Segmentation fault错误
    Solaris的panic故障分析
    转: Linux下单网卡多vlan多虚拟机
    oracle故障快速定位
  • 原文地址:https://www.cnblogs.com/xiaoxiaossrs/p/6979500.html
Copyright © 2020-2023  润新知