使用JQ+JS中的高级数组实现下拉列表框(select)的省市联动

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>级联菜单</title>
    <script src="../js/jquery.js"></script>
    <script src="../js/jquery-1.8.3.min.js"></script>
</head>
<body>
<select name="" id="a">
    <option value="请选择/省市">请选择/省市</option>
</select><select name="" id="b">
    <option value="请选择/城市">请选择/城市</option>
</select>
</body>
<script>
    $(document).ready(function () {
        //首先声明一个高级数组
        let cityList = new Array();
        cityList['北京市'] = ['朝阳区','东城区','西城区', '海淀区','宣武区','丰台区','怀柔','延庆','房山'];
        cityList['上海市'] = ['宝山区','长宁区','丰贤区', '虹口区','黄浦区','青浦区','南汇区','徐汇区','卢湾区'];
        cityList['广州省'] = ['广州市','惠州市','汕头市','珠海市','佛山市','中山市','东莞市'];
        cityList['深圳市'] = ['福田区', '罗湖区', '盐田区', '宝安区', '龙岗区', '南山区', '深圳周边'];
        cityList['重庆市'] = ['俞中区', '南岸区', '江北区', '沙坪坝区', '九龙坡区', '渝北区', '大渡口区', '北碚区'];
        cityList['天津市'] = ['和平区', '河西区', '南开区', '河北区', '河东区', '红桥区', '塘古区', '开发区'];
        cityList['江苏省'] = ['南京市','苏州市','无锡市'];
        cityList['浙江省'] = ['杭州市','宁波市','温州市'];
        cityList['四川省'] = ['四川省','成都市'];
        cityList['海南省'] = ['海口市'];
        cityList['福建省'] = ['福州市','厦门市','泉州市','漳州市'];
        cityList['山东省'] = ['济南市','青岛市','烟台市'];
        cityList['江西省'] = ['江西省','南昌市'];
        cityList['广西省'] = ['柳州市','南宁市'];
        cityList['安徽省'] = ['安徽省','合肥市'];
        cityList['河北省'] = ['邯郸市','石家庄市'];
        cityList['河南省'] = ['郑州市','洛阳市','三门峡市','灵宝市','鹤壁市','安阳市','驻马店市','周口市','平顶山市','许昌市','开封市','新乡市'];
        cityList['湖北省'] = ['武汉市','宜昌市'];
        cityList['湖南省'] = ['湖南省','长沙市'];
        cityList['陕西省'] = ['陕西省','西安市'];
        cityList['山西省'] = ['山西省','太原市'];
        cityList['黑龙江省'] = ['黑龙江省','哈尔滨市'];
        cityList['其他'] = ['其他'];
        //1.显示城市
        $("#a").append(function () {//拼接到城市列表
            var c="";//列表内容初始化
            for (let i in cityList) {//使用增强for循环提取信息
                c+="<option value="+i+">"+i+"</option>";
            }
            //返回拼接的结果
            return $(c);
        });
        //2.根据根据省市信息获取城市信息
        $("#a").change(function () {//在该选项改变时相应
            var v=$(this).val();//获取改变后的val值
            var c="";//列表内容初始化
            if (v=="请选择/省市"){//判断城市列表是都为初始值
                c+="<option>请选择城市/地区</option>";
                $("#b").html(c);//改变城市列表内容
                return;
            }
            //根据所获取的val值来选择相应的数组
            var citys=cityList[v];
            var c="";
            for (let i=0; i<citys.length ; i++) {//数组循环遍历创建赋值
                c+="<option value="+citys[i]+">"+citys[i]+"</option>";
            }
            $("#b").html(c);
        })
    })
</script>
</html>

该方法使用了高级数组相较于之前的方法更加简单便利易懂。

上一篇:Spring源码学习-自定义标签实践及原理


下一篇:初识 jQuery