Jquesy+address.json实现省市县三级联动联动

JS代码:

var citySelect = document.getElementById("city-select");
var areaSelect = document.getElementById("area-select");

$.getJSON("/static/json/address.json", function (provinceList) {
    /**
     * 获取省列表
     * @returns {*[]}
     */
    function getProvince() {
        var tempProvinceList = [provinceList.length];
        for (var proIndex = 0, proSize = provinceList.length; proIndex < proSize; proIndex++) {
            tempProvinceList[proIndex] = provinceList[proIndex].name;
        }
        return tempProvinceList;
    }

    /**
     * 获取市列表
     * @param position 省级下标
     * @returns {*[]}
     */
    function getCitys(position) {
        var tempCityList = [provinceList[position].cityList.length];
        for (var index = 0, size = provinceList[position].cityList.length; index < size; index++) {
            tempCityList[index] = provinceList[position].cityList[index].name;
        }
        return tempCityList;
    }

    /**
     * 获取县(区)列表
     * @param position 省级下标
     * @param cityPosition  市级下标
     */
    function getAreas(position, cityPosition) {
        return provinceList[position].cityList[cityPosition].areaList;
    }


    /**
     * * 添加省级option
     * @param position 默认选中值
     * @param select    省级select
     */
    function setProvinceOption(position, select) {
        $(select).find("option").remove();
        for (var proIndex = 0, size = getProvince().length; proIndex < size; proIndex++) {
            var option = new Option(getProvince()[proIndex]);
            if (proIndex === position) {
                $(option).attr("selected", true);
            }
            $(option).val(proIndex);
            $(select).append(option);
        }
    }

    /**
     * 添加市级option
     * @param position 省级下标
     * @param select 市级select
     */
    function setCityOption(position, select) {
        $(select).find("option").remove();
        for (var index2 = 0, size2 = getCitys(position).length; index2 < size2; index2++) {
            var option2 = new Option(getCitys(position)[index2]);
            $(option2).val(index2);
            $(select).append(option2)
        }
    }

    /**
     * 添加县(区)级option
     * @param position 省级下标
     * @param cityPosition  市级下标
     * @param select    县(区)级select
     */
    function setAreaOption(position, cityPosition, select) {
        $(select).find("option").remove();
        for (var index3 = 0, size3 = getAreas(position, cityPosition).length; index3 < size3; index3++) {
            $(select).append(new Option(getAreas(position, cityPosition)[index3]))
        }
    }

    $(provinceSelect).change(function () {
        setCityOption($(this).val(), citySelect);
        setAreaOption($(this).val(), 0, areaSelect)
    });

    $(citySelect).change(function () {
        var provinceIndex = $(provinceSelect).find("option:selected").val();
        setAreaOption(provinceIndex, $(this).val(), areaSelect);
    });

    setProvinceOption(25, provinceSelect);
    setCityOption(25, citySelect);
    setAreaOption(25, 0, areaSelect);
});

 

资源文件:address.json

[
  {
    "name": "北京",
    "cityList": [
      {
        "name": "市辖区",
        "areaList": [
          "东城区",
          "西城区",
          "崇文区",
          "宣武区",
          "朝阳区",
          "丰台区",
          "石景山区",
          "海淀区",
          "门头沟区",
          "房山区",
          "通州区",
          "顺义区",
          "昌平区",
          "大兴区",
          "怀柔区",
          "平谷区"
        ]
      },
      {
        "name": "县",
        "areaList": [
          "密云县",
          "延庆县"
        ]
      }
    ]
  },
  {
    "name": "上海",
    "cityList": [
      {
        "name": "市辖区",
        "areaList": [
          "黄浦区",
          "卢湾区",
          "徐汇区",
          "长宁区",
          "静安区",
          "普陀区",
          "闸北区",
          "虹口区",
          "杨浦区",
          "闵行区",
          "宝山区",
          "嘉定区",
          "浦东新区",
          "金山区",
          "松江区",
          "青浦区",
          "南汇区",
          "奉贤区"
        ]
      },
      {
        "name": "县",
        "areaList": [
          "崇明县"
        ]
      }
    ]
  },
  {
    "name": "天津",
    "cityList": [
      {
        "name": "市辖区",
        "areaList": [
          "和平区",
          "河东区",
          "河西区",
          "南开区",
          "河北区",
          "红桥区",
          "塘沽区",
          "汉沽区",
          "大港区",
          "东丽区",
          "西青区",
          "津南区",
          "北辰区",
          "武清区",
          "宝坻区"
        ]
      },
      {
        "name": "县",
        "areaList": [
          "宁河县",
          "静海县",
          "蓟 县"
        ]
      }
    ]
  },
  {
    "name": "重庆",
    "cityList": [
      {
        "name": "市辖区",
        "areaList": [
          "万州区",
          "涪陵区",
          "渝中区",
          "大渡口区",
          "江北区",
          "沙坪坝区",
          "九龙坡区",
          "南岸区",
          "北碚区",
          "万盛区",
          "双桥区",
          "渝北区",
          "巴南区",
          "黔江区",
          "长寿区"
        ]
      },
      {
        "name": "县",
        "areaList": [
          "綦江县",
          "潼南县",
          "铜梁县",
          "大足县",
          "荣昌县",
          "璧山县",
          "梁平县",
          "城口县",
          "丰都县",
          "垫江县",
          "武隆县",
          "忠 县",
          "开 县",
          "云阳县",
          "奉节县",
          "巫山县",
          "巫溪县",
          "石柱土家族自治县",
          "秀山土家族苗族自治县",
          "酉阳土家族苗族自治县",
          "彭水苗族土家族自治县"
        ]
      },
      {
        "name": "市",
        "areaList": [
          "江津市",
          "合川市",
          "永川市",
          "南川市"
        ]
      }
    ]
  },
  {
    "name": "四川",
    "cityList": [
      {
        "name": "成都市",
        "areaList": [
          "市辖区",
          "锦江区",
          "青羊区",
          "金牛区",
          "武侯区",
          "成华区",
          "龙泉驿区",
          "青白江区",
          "新都区",
          "温江县",
          "金堂县",
          "双流县",
          "郫 县",
          "大邑县",
          "蒲江县",
          "新津县",
          "都江堰市",
          "彭州市",
          "邛崃市",
          "崇州市"
        ]
      },
      {
        "name": "自贡市",
        "areaList": [
          "市辖区",
          "自流井区",
          "贡井区",
          "大安区",
          "沿滩区",
          "荣 县",
          "富顺县"
        ]
      },
      {
        "name": "攀枝花市",
        "areaList": [
          "市辖区",
          "东 区",
          "西 区",
          "仁和区",
          "米易县",
          "盐边县"
        ]
      },
      {
        "name": "泸州市",
        "areaList": [
          "市辖区",
          "江阳区",
          "纳溪区",
          "龙马潭区",
          "泸 县",
          "合江县",
          "叙永县",
          "古蔺县"
        ]
      },
      {
        "name": "德阳市",
        "areaList": [
          "市辖区",
          "旌阳区",
          "中江县",
          "罗江县",
          "广汉市",
          "什邡市",
          "绵竹市"
        ]
      },
      {
        "name": "绵阳市",
        "areaList": [
          "市辖区",
          "涪城区",
          "游仙区",
          "三台县",
          "盐亭县",
          "安 县",
          "梓潼县",
          "北川羌族自治县",
          "平武县",
          "江油市"
        ]
      },
      {
        "name": "广元市",
        "areaList": [
          "市辖区",
          "市中区",
          "元坝区",
          "朝天区",
          "旺苍县",
          "青川县",
          "剑阁县",
          "苍溪县"
        ]
      },
      {
        "name": "遂宁市",
        "areaList": [
          "市辖区",
          "船山区",
          "安居区",
          "蓬溪县",
          "射洪县",
          "大英县"
        ]
      },
      {
        "name": "内江市",
        "areaList": [
          "市辖区",
          "市中区",
          "东兴区",
          "威远县",
          "资中县",
          "隆昌县"
        ]
      },
      {
        "name": "乐山市",
        "areaList": [
          "市辖区",
          "市中区",
          "沙湾区",
          "五通桥区",
          "金口河区",
          "犍为县",
          "井研县",
          "夹江县",
          "沐川县",
          "峨边彝族自治县",
          "马边彝族自治县",
          "峨眉山市"
        ]
      },
      {
        "name": "南充市",
        "areaList": [
          "市辖区",
          "顺庆区",
          "高坪区",
          "嘉陵区",
          "南部县",
          "营山县",
          "蓬安县",
          "仪陇县",
          "西充县",
          "阆中市"
        ]
      },
      {
        "name": "眉山市",
        "areaList": [
          "市辖区",
          "东坡区",
          "仁寿县",
          "彭山县",
          "洪雅县",
          "丹棱县",
          "青神县"
        ]
      },
      {
        "name": "宜宾市",
        "areaList": [
          "市辖区",
          "翠屏区",
          "宜宾县",
          "南溪县",
          "江安县",
          "长宁县",
          "高 县",
          "珙 县",
          "筠连县",
          "兴文县",
          "屏山县"
        ]
      },
      {
        "name": "广安市",
        "areaList": [
          "市辖区",
          "广安区",
          "岳池县",
          "武胜县",
          "邻水县",
          "华莹市"
        ]
      },
      {
        "name": "达州市",
        "areaList": [
          "市辖区",
          "通川区",
          "达 县",
          "宣汉县",
          "开江县",
          "大竹县",
          "渠 县",
          "万源市"
        ]
      },
      {
        "name": "雅安市",
        "areaList": [
          "市辖区",
          "雨城区",
          "名山县",
          "荥经县",
          "汉源县",
          "石棉县",
          "天全县",
          "芦山县",
          "宝兴县"
        ]
      },
      {
        "name": "巴中市",
        "areaList": [
          "市辖区",
          "巴州区",
          "通江县",
          "南江县",
          "平昌县"
        ]
      },
      {
        "name": "资阳市",
        "areaList": [
          "市辖区",
          "雁江区",
          "安岳县",
          "乐至县",
          "简阳市"
        ]
      },
      {
        "name": "阿坝藏族羌族自治州",
        "areaList": [
          "汶川县",
          "理 县",
          "茂 县",
          "松潘县",
          "九寨沟县",
          "金川县",
          "小金县",
          "黑水县",
          "马尔康县",
          "壤塘县",
          "阿坝县",
          "若尔盖县",
          "红原县"
        ]
      },
      {
        "name": "甘孜藏族自治州",
        "areaList": [
          "康定县",
          "泸定县",
          "丹巴县",
          "九龙县",
          "雅江县",
          "道孚县",
          "炉霍县",
          "甘孜县",
          "新龙县",
          "德格县",
          "白玉县",
          "石渠县",
          "色达县",
          "理塘县",
          "巴塘县",
          "乡城县",
          "稻城县",
          "得荣县"
        ]
      },
      {
        "name": "凉山彝族自治州",
        "areaList": [
          "西昌市",
          "木里藏族自治县",
          "盐源县",
          "德昌县",
          "会理县",
          "会东县",
          "宁南县",
          "普格县",
          "布拖县",
          "金阳县",
          "昭觉县",
          "喜德县",
          "冕宁县",
          "越西县",
          "甘洛县",
          "美姑县",
          "雷波县"
        ]
      }
    ]
  },
  {
    "name": "贵州",
    "cityList": [
      {
        "name": "贵阳市",
        "areaList": [
          "市辖区",
          "南明区",
          "云岩区",
          "花溪区",
          "乌当区",
          "白云区",
          "小河区",
          "开阳县",
          "息烽县",
          "修文县",
          "清镇市"
        ]
      },
      {
        "name": "六盘水市",
        "areaList": [
          "钟山区",
          "六枝特区",
          "水城县",
          "盘 县"
        ]
      },
      {
        "name": "遵义市",
        "areaList": [
          "市辖区",
          "红花岗区",
          "汇川区",
          "遵义县",
          "桐梓县",
          "绥阳县",
          "正安县",
          "道真仡佬族苗族自治县",
          "务川仡佬族苗族自治县",
          "凤冈县",
          "湄潭县",
          "余庆县",
          "习水县",
          "赤水市",
          "仁怀市"
        ]
      },
      {
        "name": "安顺市",
        "areaList": [
          "市辖区",
          "西秀区",
          "平坝县",
          "普定县",
          "镇宁布依族苗族自治县",
          "关岭布依族苗族自治县",
          "紫云苗族布依族自治县"
        ]
      },
      {
        "name": "铜仁地区",
        "areaList": [
          "铜仁市",
          "江口县",
          "玉屏侗族自治县",
          "石阡县",
          "思南县",
          "印江土家族苗族自治县",
          "德江县",
          "沿河土家族自治县",
          "松桃苗族自治县",
          "万山特区"
        ]
      },
      {
        "name": "黔西南布依族苗族自治州",
        "areaList": [
          "兴义市",
          "兴仁县",
          "普安县",
          "晴隆县",
          "贞丰县",
          "望谟县",
          "册亨县",
          "安龙县"
        ]
      },
      {
        "name": "毕节地区",
        "areaList": [
          "毕节市",
          "大方县",
          "黔西县",
          "金沙县",
          "织金县",
          "纳雍县",
          "威宁彝族回族苗族自治县",
          "赫章县"
        ]
      },
      {
        "name": "黔东南苗族侗族自治州",
        "areaList": [
          "凯里市",
          "黄平县",
          "施秉县",
          "三穗县",
          "镇远县",
          "岑巩县",
          "天柱县",
          "锦屏县",
          "剑河县",
          "台江县",
          "黎平县",
          "榕江县",
          "从江县",
          "雷山县",
          "麻江县",
          "丹寨县"
        ]
      },
      {
        "name": "黔南布依族苗族自治州",
        "areaList": [
          "都匀市",
          "福泉市",
          "荔波县",
          "贵定县",
          "瓮安县",
          "独山县",
          "平塘县",
          "罗甸县",
          "长顺县",
          "龙里县",
          "惠水县",
          "三都水族自治县"
        ]
      }
    ]
  },
  {
    "name": "云南",
    "cityList": [
      {
        "name": "昆明市",
        "areaList": [
          "市辖区",
          "五华区",
          "盘龙区",
          "官渡区",
          "西山区",
          "东川区",
          "呈贡县",
          "晋宁县",
          "富民县",
          "宜良县",
          "石林彝族自治县",
          "嵩明县",
          "禄劝彝族苗族自治县",
          "寻甸回族彝族自治县",
          "安宁市"
        ]
      },
      {
        "name": "曲靖市",
        "areaList": [
          "市辖区",
          "麒麟区",
          "马龙县",
          "陆良县",
          "师宗县",
          "罗平县",
          "富源县",
          "会泽县",
          "沾益县",
          "宣威市"
        ]
      },
      {
        "name": "玉溪市",
        "areaList": [
          "市辖区",
          "红塔区",
          "江川县",
          "澄江县",
          "通海县",
          "华宁县",
          "易门县",
          "峨山彝族自治县",
          "新平彝族傣族自治县",
          "元江哈尼族彝族傣族自治县"
        ]
      },
      {
        "name": "保山市",
        "areaList": [
          "市辖区",
          "隆阳区",
          "施甸县",
          "腾冲县",
          "龙陵县",
          "昌宁县"
        ]
      },
      {
        "name": "昭通市",
        "areaList": [
          "市辖区",
          "昭阳区",
          "鲁甸县",
          "巧家县",
          "盐津县",
          "大关县",
          "永善县",
          "绥江县",
          "镇雄县",
          "彝良县",
          "威信县",
          "水富县"
        ]
      },
      {
        "name": "丽江市",
        "areaList": [
          "市辖区",
          "古城区",
          "玉龙纳西族自治县",
          "永胜县",
          "华坪县",
          "宁蒗彝族自治县"
        ]
      },
      {
        "name": "思茅市",
        "areaList": [
          "市辖区",
          "翠云区",
          "普洱哈尼族彝族自治县",
          "墨江哈尼族自治县",
          "景东彝族自治县",
          "景谷傣族彝族自治县",
          "镇沅彝族哈尼族拉祜族自治县",
          "江城哈尼族彝族自治县",
          "孟连傣族拉祜族佤族自治县",
          "澜沧拉祜族自治县",
          "西盟佤族自治县"
        ]
      },
      {
        "name": "临沧市",
        "areaList": [
          "市辖区",
          "临翔区",
          "凤庆县",
          "云 县",
          "永德县",
          "镇康县",
          "双江拉祜族佤族布朗族傣族自治县",
          "耿马傣族佤族自治县",
          "沧源佤族自治县"
        ]
      },
      {
        "name": "楚雄彝族自治州",
        "areaList": [
          "楚雄市",
          "双柏县",
          "牟定县",
          "南华县",
          "姚安县",
          "大姚县",
          "永仁县",
          "元谋县",
          "武定县",
          "禄丰县"
        ]
      },
      {
        "name": "红河哈尼族彝族自治州",
        "areaList": [
          "个旧市",
          "开远市",
          "蒙自县",
          "屏边苗族自治县",
          "建水县",
          "石屏县",
          "弥勒县",
          "泸西县",
          "元阳县",
          "红河县",
          "金平苗族瑶族傣族自治县",
          "绿春县",
          "河口瑶族自治县"
        ]
      },
      {
        "name": "文山壮族苗族自治州",
        "areaList": [
          "文山县",
          "砚山县",
          "西畴县",
          "麻栗坡县",
          "马关县",
          "丘北县",
          "广南县",
          "富宁县"
        ]
      },
      {
        "name": "西双版纳傣族自治州",
        "areaList": [
          "景洪市",
          "勐海县",
          "勐腊县"
        ]
      },
      {
        "name": "大理白族自治州",
        "areaList": [
          "大理市",
          "漾濞彝族自治县",
          "祥云县",
          "宾川县",
          "弥渡县",
          "南涧彝族自治县",
          "巍山彝族回族自治县",
          "永平县",
          "云龙县",
          "洱源县",
          "剑川县",
          "鹤庆县"
        ]
      },
      {
        "name": "德宏傣族景颇族自治州",
        "areaList": [
          "瑞丽市",
          "潞西市",
          "梁河县",
          "盈江县",
          "陇川县"
        ]
      },
      {
        "name": "怒江傈僳族自治州",
        "areaList": [
          "泸水县",
          "福贡县",
          "贡山独龙族怒族自治县",
          "兰坪白族普米族自治县"
        ]
      },
      {
        "name": "迪庆藏族自治州",
        "areaList": [
          "香格里拉县",
          "德钦县",
          "维西傈僳族自治县"
        ]
      }
    ]
  },
  {
    "name": "西藏",
    "cityList": [
      {
        "name": "拉萨市",
        "areaList": [
          "市辖区",
          "城关区",
          "林周县",
          "当雄县",
          "尼木县",
          "曲水县",
          "堆龙德庆县",
          "达孜县",
          "墨竹工卡县"
        ]
      },
      {
        "name": "昌都地区",
        "areaList": [
          "昌都县",
          "江达县",
          "贡觉县",
          "类乌齐县",
          "丁青县",
          "察雅县",
          "八宿县",
          "左贡县",
          "芒康县",
          "洛隆县",
          "边坝县"
        ]
      },
      {
        "name": "山南地区",
        "areaList": [
          "乃东县",
          "扎囊县",
          "贡嘎县",
          "桑日县",
          "琼结县",
          "曲松县",
          "措美县",
          "洛扎县",
          "加查县",
          "隆子县&#
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值