JavaScript(二十三)三级联动demo

三级联动效果展示图

全部代码

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>

</head>
<body>
省:<select id="sheng">
    <option>--请选择--</option>
</select>
市:<select id="city_1">
    <option>--请选择--</option>
</select>
区:<select id="qu">
    <option>--请选择--</option>
</select>


<script src="./data/cityData.js"></script>
<script src="./data/data.js"></script>

<script>
    var sheng = document.getElementById("sheng");
    var city_1= document.getElementById("city_1");
    var qu = document.getElementById("qu");
    var Data = city[0];       //输出的是city中的第一个数据内容
    for (var key in Data) {
        var op = new Option(Data[key].name, key);
        //实例化一个对象   第一个参数文本值,Data[key].name 输出的是name值(陕西省) ,第二个参数value值 (陕西省的编号)
        sheng.appendChild(op);
    }
    /*onchange 文本发生变化事件*/
    var child;
    sheng.onchange = function () {
        city_1.options.length = 1;    //市位置的值清空   只保留了请选择
        qu.options.length = 1;        //区位置的值清空
        var shengnumber = this.value;       /* 省的键值*/
        child = Data[shengnumber].child;     //省的子元素  市
        for (var key in child) {
            var op = new Option(child[key].name, key);      // 市的名称  市的键值编码
            city_1.appendChild(op);        //追加给 市
        }
    }

    city_1.onchange = function () {       //市的值改变
                qu.options.length = 1;      //区的位置清空
                var city_1number = this.value;    //市的键值编码
                var childData = child[city_1number];   //child  是省的子元素  市

                for (var key in childData.child) {
                    var op = new Option(childData.child[key], key);   //childData.child   区的键值编码
                    qu.appendChild(op);
                }
            }
</script>
</body>
</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值