通过HTML和JS实现简单省市联动,包括具体思路和具体代码,仅供参考,具体内容如下:

思路分析:

1.准备省份城市下拉框

2.准备省份对应城市基础的数据(省份数组,城市二维数组)

3.给省份下拉框填充数据

4.绑定省份下拉框onchange事件

5.获取省份下拉框中选中选项索引

6.通过选中索引,获取城市二维数组对应数组

7.将城市数组数据填充城市下拉框中

8.每次切换省份下拉框的选项时,将城市下拉框的选项调回默认值

二 具体代码:

第一部分:完整代码

<!DOCTYPE html>
<!– 文档申明,当前使用版本HTML5 –>
<!– HTML文档start –>
<html>
    <!– 网页标题栏start –>
    <head>
        <!– 声明语言 –>
        <meta charset=”utf-8″>
        <!– 标题栏 –>
        <title>省市联动</title>
    <!– 网页标题end –>    
    </head>
    <!– 网页主体内容的开始 –>
    <body>
        <!– 1.准备省份与城市的下拉框 –>
        请选择地址:
        <select id=”pro“>
            <option value=””>请选择省份</option>
        </select>
        <select id=”city“>
            <option value=””>请选择城市</option>
        </select>
        
        <script type=”text/javascript“>
            //2.准备省份对应城市基础的数据(省份用数组,城市用二维数组)
            var pro = [‘江苏省’,’浙江省’,’安徽省’];
            var city = [
                [‘南京市’,’苏州市’,’无锡市’,’徐州市’],
                [‘杭州市’,’宁波市’,’绍兴市’,’湖州市’],
                [“合肥市”,”滁州市”,”芜湖市”,”宣城市”]
            ];
            
            //3.给省份下拉框填充数据
            //3.1 循环遍历省份数组
            for (var i = 0;i < pro.length;i++){
                //3.2 创建option对象,并设置对应的值
                var opt = document.createElement(“option“);
                opt.value = i;
                opt.text = pro[i];
                //3.3 将option对象追加到省份下拉框中
                document.getElementById(‘pro‘).appendChild(opt);                
            }
            
            //4 绑定省份下拉框的onchane事件
            document.getElementById(‘pro‘).onchange = function(){
                
                // 8 每次切换省份下拉框的下拉选项时,返回城市下拉框的默认选项
                document.getElementById(“city“).innerHTML = ‘<option value =””>请选择城市</option>’;
                
                //5 获取省份下拉框中选中选项索引
                //下拉框被选中value正好与城市二维数组的值对应
                var index = document.getElementById(‘pro‘).value;
                
                //6 通过选中索引,获取城市二维数组中对应的数组
                var cityList = city[index];
                
                //7 将城市数组的数据填充到城市下拉框中,同3步骤一样
                //7.1 循环遍历城市二维数组
                for (var i = 0; i < cityList.length;i++){
                    //7.2 创建option对象,并设置对应的值
                    var opt = document.createElement(‘option’);
                    opt.value = i;
                    opt.text = cityList[i];
                    // 7.3 将option对象追加到城市下拉框中
                    document.getElementById(‘city’).appendChild(opt);
                }
            }
        </script>
        
    <!– 网页主体内容结束 –>
    </body>
<!– HTML文档end –>    
</html>

第二部分 效果图

注意 :

        ①文中索引,也可以采取selectedIndex来获取省份下拉框被选中项的索引;

             eg示例: var index = document.getElementById(‘pro‘).selectedIndex;

        ②思路分析第8步骤,需要innerHTML事件绑定在第四步之后,在onchang事件触发函数需要调用,另不建议设置为空值,因为则这样修改省份下拉框选项时候会清楚城市下拉框的默认值;

        ③在JS里document.getElementById(),可以考虑用$方法来便捷操作;id 可以考虑用#,仅供参考

        ④基础数据数组方面,本文采取的二维数组,也可以采用对象类型
                    var data = {
                        “上海市”:[“浦东新区”,”静安区”,”普陀区”,”闵行区”],
                        “江苏省”:[“南京市”,”苏州市”,”无锡市”,”常州市”]
                    }

可供参考:

代码截图

 省市联动初步效果链接

以上就是本文的全部内容,希望对大家学习有所帮助,也希望大家多多支持,谢谢!

原文地址:https://blog.csdn.net/Kaka_csdn14/article/details/127884490

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_36060.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注