仿三级联动

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>三级联动</title>
</head>
<body>
<select id="province">
    <option value="">-请选择-</option><!--先创建三个下拉栏,分别对应 省 市 县-->
</select>

<select id="city">
    <option value="">-请选择-</option>
</select>

<select id="area">
    <option value="">-请选择-</option>
</select>
<script>
    var province =document.getElementById("province");
    var city=document.getElementById("city");
    var area=document.getElementById("area");

    var arr_province=["陕西省","云南省","四川省","山西省"];

    var arr_city=[
        ["西安市","咸阳市","宝鸡市","渭南市"],
        ["昆明市","大理市","丽江市","西双版纳市"],
        ["内江市","成都市","泸州市","资阳市"],
        ["太原市","屏显市","乐宝市","李伟市"]
    ];

    var arr_area=[
            [
                ["西安县1","西安县2"],["咸阳市1","咸阳市2"],["宝鸡市1","宝鸡市2"],["渭南市1","渭南市2"]
            ],
            [
                ["昆明市1","昆明市2"],["大理市1","大理市2"],["丽江市1","丽江市2"],["西双版纳市1","西双版纳市2"]
            ],
            [
                ["东兴区","市中区"],["双流区","金牛区"],["龙马潭区","江阳区"],["高新区","雁江区"]
            ],
            [
                ["太原市1","太原市2"],["屏显市1","屏显市2"],["乐宝市1","乐宝市2"],["李伟市1","李伟市2"]
            ]
    ];
    //定义一个全局对象,存储县的值
    var arr_middle;

    //进行函数封装
    function arr_linkage(arr,event){
        //进行循环遍历,这里的arr相当于上面的数组
        for(var i=0;i<arr.length;i++){
            //创建option
            var option=new Option(arr[i],i);
            //增加节点
            event.appendChild(option);
        }
    }
        //首先,arr_province相当于省的数组,province=select中选中的城市
        arr_linkage(arr_province,province);

        //首先点击某一个省时,可以改变市的option
        province.onchange=function(){
            //要把市和区重置
            city.options.length=1;
            area.options.length=1;
            var index=this.value;
            //对市的数组进行索引,oCity就是一个数组
            var oCity=arr_city[index];
            arr_middle=arr_area[index];
            arr_linkage(oCity,city);
        }
        //点击市之后,
        city.onchange=function(){
            //把区的option变为1;
            area.options.length=1;
            var index=this.value;
            //现在的arr_middle就是存储的是当前市所属的县的值
            var oArea=arr_middle[index]
            arr_linkage(oArea,area);
        }
    
</script>
</body>
</html>

这个也适合掌握基础的新手理解与运用。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值