jQuery实现三联联动

网上看过很多关于联动的jq或js代码,最近班上的前端大神教了我一种比网上还简单的jq联动方法,自己琢磨过之后确实比其他方法更简单更简洁所以在这里分享一下

先上html代码

<div id="select-form">
         <select id="provinse" name="">
           <option>请选择省</option>
         </select>

         <select id="city" name="">
           <option>请选择市</option>
         </select>

         <select id="town" name="">
           <option>请选择区/县</option>
         </select>

         <a href="#">搜索</a>
      </div>

jq代码

//三联联动下拉框代码
    var ArryData = {
         广东省:{
              广州市:"荔湾区,越秀区,海珠区,天河区,芳村区,白云区,黄埔区,番禺市,花都市,增城市,从化市",
            深圳市:"罗湖区,福田区,南山区,宝安区,龙岗区,盐田区",
            珠海市:"香洲区,斗门区,金湾区",
            湛江市:"赤坎区,霞山区,坡头区,麻章区,竹溪县,徐闻县,廉江市,雷州市,吴川市"
          },
         河北省:{
              石家庄市:"深泽县,无极县,赵县",
              唐山市:"玉田县,遵化市,迁安市"
          },
          山东省:{
              济南市:"历下区,市中区,槐荫区,天桥区,历城区,长清县,平阴县,济阳县,商河县,章丘市",
              青岛市:"市南区,市北区,四方区,黄岛区,崂山区,李沧区,城阳区"
          }

    };//ArryData结束
    //先定义一个数组,数组元素用:隔开,将数组分为两部分一部分是省名,第二部分是市名及之后那些区/县

    var i = 0;//先定义一个变量i 用于下面函数遍历元素用
    var savedefault = new Array;//创建一个储存上面html预设好的option内容的数组用于初始化
    $("#select-form option").each(function(i) {        //遍历所有option 将对应下标的option html内容存入对应的数组下标里
       savedefault[i] = $(this).html();
       i++;
    });

    function setdefault(obj){
       var index = $(obj).index();//通过index()获得对象索引
       $(obj).html("<option>" + savedefault[index] + "</option>");
       //通过索引匹配相应数组下标的内容

    };

    //开始遍历ArryData
    $.each(ArryData,function(_provinse){
       //遍历数组获取第一部分的内容,即省名
       $("#provinse").append("<option>" + _provinse + "</option>");  //在id为provinse的下拉框下添加选择内容
    });

    $("#provinse").change(function(){
        //当省份下拉列表内容发生变化时执行以下方法
        setdefault("#city");//初始化市的选择框值
        setdefault("#town");//初始化区/县的值

        $.each(ArryData,function(_provinse,content){
            //content包含的内容就是第二部分的内容,即市名以及后面各区/县名
            if($("#provinse option:selected").text() == _provinse){//选择的省名与数组的省名相同,在id为city里增加对应内容的option
                $.each(content,function(_city,_town){
                   $("#city").append("<option>" + _city + "</option>");
                });
                $("#city").change(function(){
                  setdefault("#town");
                  $.each(content,function(_city,_town){//这里将第二部分又分成了两部分,一部分是市名 _city,另一部分是区/县名 _town
                     if($("#city option:selected").text() == _city){//这里也是一样,当城市名内容更改后对应的区/县名也改成与之对应的内容
                         $.each(_town.split(","),function(){//将 _town 里面的内容用逗号分隔开一个一个元素
                            $("#town").append("<option>" + this + "</option>");
                             });
                         };

                  });     

                });

            }

        });
    });

});

最后还得感谢帮助我的大神@进击的前端狗

时间: 2024-08-10 14:51:18

jQuery实现三联联动的相关文章

使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能

使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能 要求:写一个省市区(或者年月日)的三级联动,实现地区或时间的下拉选择. 实现技术:php ajax 实现:省级下拉变化时市下拉区下拉跟着变化,市级下拉变化时区下拉跟着变化. 使用chinastates表查询 Ajax加载数据 1.这是chinastates表 2.做一个简单php:Ajax_eg.php <!DOCTYPE html><html>    <head>        <meta c

Json 基于jQuery+JSON的省市联动效果

helloweba.com 作者:月光光 时间:2012-09-12 21:57 标签: jQuery  JSON  Ajax  省市联动 省市区联动下拉效果在WEB中应用非常广泛,尤其在一些会员信息系统.电商网站最为常见.开发者一般使用Ajax实现无刷新下拉联动.本文将讲述,利用jQuery插件,通过读取JSON数据,实现无刷新动态下拉省市二(三)级联动效果. 查看演示 下载源码 HTML 首先在head中载入jquery库和cityselect插件. <script type="tex

用jQuery实现省市区三级联动(可做插件)

用jQuery实现省市区三级联动(可做插件) 有参考别的文档,如有雷同,不胜感激 先上效果图 上三级联动代码 city.html <!DOCTYPE html> <html> <head> <title>city.html</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http

《三联生活周刊》2017年17期:3星。电子版阅读体验远超纸版。如果雄安的土地制度实验成功了,“北上广深”的房价也就被釜底抽薪了。

家附近的报刊亭都被拆了,被迫看电子版三联.发现阅读体验远超纸版.主要有以下两个方面的好处:1:看图片的体验,电子版好过纸版.当然前提是在电脑上或平板上看,kindle是黑白的,看图片效果比较查:2:可以做笔记,笔记可以永久保存:3:检索方便. 目前电子版的缺陷是滞后两期,导致时效性太差,只能当作纸版的长尾. 本期雄安的几篇文章比较有深度.总体评价3星. 以下是本期中一些重要的信息的摘抄: 1:研究人员调查分析了美国11个城市10年中举办马拉松赛事前后心脏病患者的死亡率后发现,那些在赛事举办时发生

表单(三)联动总结

任务目的 加强对JavaScript的掌握 熟悉常用表单处理逻辑 任务描述 如示例图中所示,在页面中完成两个单选框,切换单选框的不同选项时下方显示的表单随之切换. 当选择在校生时,出现两个select下拉菜单,一个选择城市,一个选择学校,当选择非在校生时,出一个文本输入框 学校下拉菜单里的学校名单均为城市下拉菜单中所选的城市中的大学,当城市发生变化时,学校一起发生变化 城市及学校的数据随意编造即可,无需真实完整 任务注意事项 要求功能实现与任务描述中完全一致 示例图仅为参考,样式不需要完全实现一

锋利的jQuery第三章

现在开始学习第三章,jQuery中的Dom操作. 以前我也看过w3school的dom,看过了很迷,不知道dom是什么. 1,dom是文档对象模型,dom操作分为3类:Dom Core(核心),HTML-DOM,CSS-DOM (1)Dom Core(核心):主要有getElementById(),getElementByTagName(),getAttribute()和setAttribute()等方法. (2)HTML-DOM:如 document.forms //取得forms对象; el

jQuery MVC 科室异步联动

//科室改变,级联医生 js $("#DepartmentId").change(function () { if (isNaN($(this).val())) { $("#DoctorId option:gt(0)").remove(); } else { $.post('/JK/Json/JsonDoctorList/', { departmentId: $(this).val() }, function (data) { if (data.Success) {

强大的JQuery(三)--操作html与遍历

前两篇博客讲到了JQuery的基础知识以及其动画效果,本篇将为大家介绍jquery操纵html以及jquery的遍历. 一.jquery操作html 1.获取内容和属性 text() - 设置或返回所选元素的文本内容 html() - 设置或返回所选元素的内容(包括 HTML 标记) val() - 设置或返回表单字段的值 attr()- 方法用于获取属性值. 实例: <span style="font-size:18px;">$("#btn1").cl

简单jquery实现select三级联动

简单的jquery实现select三级联动 代码如下: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8" /> 5 <title>selectList</title> 6 <style type="text/css"> 7 *{margin:0;padding:0;} 8 .selectList{width:200