省市县三级联动

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
</head>

<body>
    <select name="" id="province"></select>
    <select name="" id="city"></select>
    <select name="" id="district"></select>

    <script>
        var areaStr = '';

        var city = $('#city');
        var district = $('#district');
        var province = $('#province');

        const cityList = {
            provinceToCity: {
                上海市: ["上海市"],
                内蒙古: ["乌兰察布市"],
                北京市: ["北京市"],
                天津市: ["天津市"],
                广东省: ["广州市", "深圳市"],
                云南省: ["昆明市"],
                辽宁省: ["沈阳市"],
                贵州省: ["贵阳市"]
            },
            cityToArea: {
                上海市: ["嘉定区", "杨浦区", "宝山区", "奉贤区",
                    "普陀区",
                    "松江区",
                    "长宁区",
                    "浦东新区",
                    "黄埔区",
                    "闵行区",
                    "崇明县",
                    "虹口区",
                    "青浦区",
                    "静安区",
                    "金山区",
                    "徐汇区"
                ],
                乌兰察布市: [
                    "丰镇市",
                    "集宁区",
                    "察哈尔右翼后旗",
                    "凉城县",
                    "商都县",
                    "卓资县",
                    "四子王旗",
                    "察哈尔右翼前旗",
                    "兴和县",
                    "化德县"
                ],
                北京市: [
                    "通州区",
                    "延庆区",
                    "门头沟区",
                    "平谷区",
                    "丰台区",
                    "大兴区",
                    "朝阳区",
                    "顺义区",
                    "东城区",
                    "房山区",
                    "密云区",
                    "石景山区",
                    "海淀区",
                    "怀柔区",
                    "昌平区",
                    "西城区"
                ],
                天津市: [
                    "北辰区",
                    "和平区",
                    "西青区",
                    "静海区",
                    "红桥区",
                    "滨海新区",
                    "南开区",
                    "武清区",
                    "河东区",
                    "津南区",
                    "蓟县",
                    "东丽区",
                    "宁河区",
                    "河北区",
                    "宝坻区",
                    "河西区"
                ],
                广州市: [
                    "白云区",
                    "海珠区",
                    "从化区",
                    "荔湾区",
                    "花都区",
                    "黄埔区",
                    "天河区",
                    "增城区",
                    "越秀区",
                    "南沙区",
                    "番禺区"
                ],
                昆明市: [
                    "官渡区",
                    "石林彝族自治县",
                    "五华区",
                    "富民县",
                    "呈贡区",
                    "寻甸回族彝族自治县",
                    "西山区",
                    "嵩明县",
                    "盘龙区",
                    "宜良县",
                    "晋宁县",
                    "安宁市",
                    "东川区",
                    "禄劝彝族苗族自治县",
                ],
                沈阳市: [
                    "康平县",
                    "沈河区",
                    "于洪区",
                    "浑南区",
                    "铁西区",
                    "法库县",
                    "大东区",
                    "辽中县",
                    "和平区",
                    "沈北新区",
                    "苏家屯区",
                    "新民市",
                    "皇姑区"
                ],
                深圳市: [
                    "南山区",
                    "罗湖区",
                    "盐田区",
                    "宝安区",
                    "福田区",
                    "龙岗区"
                ],
                贵阳市: [
                    "乌当区",
                    "云岩区",
                    "修文县",
                    "开阳县",
                    "白云区",
                    "花溪区",
                    "清镇市",
                    "南明区",
                    "息烽县",
                    "观山湖区"

                ],
            }
        };

        // 初始化省市区
        getProvince(cityList.provinceToCity);
        getCityOrdistrict(cityList.provinceToCity[province.val()], city);
        getCityOrdistrict(cityList.cityToArea[city.val()], district);

        province.change(function (e) {
            city.html('');
            district.html('');
            getCityOrdistrict(cityList.provinceToCity[e.target.value], city);
            getCityOrdistrict(cityList.cityToArea[city.val()], district);
        });

        city.change(function (e) {
            district.html('');
            getCityOrdistrict(cityList.cityToArea[e.target.value], district);
        });

        //获取省的名称
        function getProvince(name) {
            for (var i = 0; i < Object.keys(name).length; i++) {
                areaStr += '<option>' + Object.keys(cityList.provinceToCity)[i] + '</option>';
            }

            province.append(areaStr);
        }

        // 获取市和县区的名称
        function getCityOrdistrict(name, elem) {
            areaStr = '';
            for (var i = 0; i < name.length; i++) {
                areaStr += '<option>' + name[i] + '</option>';
            };

            elem.append(areaStr);
        }
    </script>
</body>

</html>
原文地址:https://www.cnblogs.com/fangfeiyue/p/7494407.html