JavaScript实现二级下拉菜单联动

实现效果

选择相应的省份,二级菜单默认显示省会城市,同时可以选择其他城市。

源码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        /**
         * 实现二级菜单级联
         */
        var provinces=[
            {
                id:1001,
                name:'江苏省',
                cities:[
                    {
                        id:1,
                        name:'南京市'
                    },
                    {
                        id:2,
                        name:'苏州市'
                    },
                    {
                        id:3,
                        name:'扬州市'
                    },
                    {
                        id:4,
                        name:'徐州市'
                    },
                    {
                        id:5,
                        name:'常州市'
                    }
                ]
            },
            {
                id:1002,
                name:'山东省',
                cities:[
                    {
                        id:1,
                        name:'济南市'
                    },
                    {
                        id:2,
                        name:'青岛市'
                    },
                    {
                        id:3,
                        name:'威海市'
                    },
                    {
                        id:4,
                        name:'烟台市'
                    },
                    {
                        id:5,
                        name:'德州市'
                    }
                ]
            },
            {
                id:1003,
                name:'广东省',
                cities:[
                    {
                        id:1,
                        name:'广州市'
                    },
                    {
                        id:2,
                        name:'东莞市'
                    },
                    {
                        id:3,
                        name:'青远市'
                    },
                    {
                        id:4,
                        name:'佛山市'
                    },
                    {
                        id:5,
                        name:'深圳市'
                    }
                ]
            }
        ];
        window.onload = function(){
            var province = document.getElementById("province");
            var city = document.getElementById("city");
            province.onchange = function(){
                // 清除之前city下拉框内的数据,只留下第一个option
                if(city.length>1){
                    city.length = 1;
                }
                var selected = provinces[province.selectedIndex-1]; //被选中省份的JSON对象
                for(var i=0;i<selected.cities.length;i++){
                    //城市的name作为文本,城市的id作为value,创建新的option对象
                    var option = new Option(selected.cities[i].name,selected.cities[i].id); 
                    city.add(option);//将option对象添加到city的末尾
                }
                city.selectedIndex = 1; //默认显示第二个option,即省会城市                      
            }
        }
    </script>
</head>
<body>
    省份:
    <select id = "province">
        <option value="0">--请选择省份--</option>
        <option value="1">江苏省</option>
        <option value="2">山东省</option>
        <option value="3">广东省</option>
    </select>
    城市:
    <select id="city">
        <option value="0">--请选择城市--</option>
    </select>

</body>
</html>

猜你喜欢

转载自blog.csdn.net/weixin_39006917/article/details/106147426