js中的三级联动

前提:需要一个拥有全部省份,市,区的js文件

 省份:<select name="" id="province">

        <!-- <option value=""></option> -->

    </select>

    市级:<select name="" id="city"></select>

    区级:<select name="" id="area"></select>

    <script>

        // 

        var pro = document.getElementById('province');

        var city = document.getElementById('city');

        var area = document.getElementById('area');

        // 1. 直接将省份的数据 遍历到下拉列表中

        // 获取data数组中的每一项数据(对象)

        for(var i = 0;i<data.length;i++){

            // console.log(data[i].n);

            // 1.2 创建对应数据的option

            var option = document.createElement('option');

            option.innerText = data[i].n;

            // 将每一项创建的option,赋值对应的省份 将option追加到pro中

            pro.appendChild(option);

        }

        // 将北京中的市级添加到city中

        var indexPro = pro.selectedIndex;

        console.log(data[indexPro]);

        // 获取到北京中所有的市级

        var dataCity = data[indexPro].c;

        for(var i = 0;i<dataCity.length;i++){

            // console.log(data[i].n);

            // 1.2 创建对应数据的option

            var option = document.createElement('option');

            option.innerText = dataCity[i].n;

            // 将每一项创建的option,赋值对应的省份 将option追加到pro中

            city.appendChild(option);

        }

        // console.log(data);

        // 当切换省份  市级跟着变换

        pro.onchange = function(){

            // 删除掉上一次省份的市级数据

            city.innerHTML = "";

            // 找到切换后的省份是谁

            var index = pro.selectedIndex;

            // console.log(index);

            // 获取当前对应省份的市级数据

            var dataCity = data[index].c;

            // console.log(dataCity);

            for(var i = 0;i<dataCity.length;i++){

                // console.log(data[i].n);

                // 1.2 创建对应数据的option

                var option = document.createElement('option');

                option.innerText = dataCity[i].n;

                // 将每一项创建的option,赋值对应的省份 将option追加到pro中

                city.appendChild(option);

            }

        }

        // 将北京中的区级添加到arae中

        var indexPro = city.selectedIndex;

        console.log(dataCity[indexPro]);

        // 获取到北京中所有的市级

        var dataArae = dataCity[indexPro].c;

        for(var i = 0;i<dataArae.length;i++){

            // console.log(data[i].n);

            // 1.2 创建对应数据的option

            var option = document.createElement('option');

            option.innerText = dataArae[i].n;

            // 将每一项创建的option,赋值对应的区份 将option追加到area中

            area.appendChild(option);

        }

        // 当切换省份  市级跟着变换

        city.onchange = function(){

            // 删除掉上一次市级的区级数据

            area.innerHTML = "";

            var index1 = pro.selectedIndex;

            // 获取当前对应省份的市级数据

            var dataCity = data[index1].c;

            // 找到切换后的市份是谁

            var index = city.selectedIndex;

            // console.log(index);

            // 获取当前对应市份的区级数据

            var dataArae = dataCity[index].c;

            // console.log(dataCity);

            for(var i = 0;i<dataArae.length;i++){

                // console.log(data[i].n);

                // 1.2 创建对应数据的option

                var option = document.createElement('option');

                option.innerText = dataArae[i].n;

                // 将每一项创建的option,赋值对应的省份 将option追加到pro中

                area.appendChild(option);

            }

        }

    </script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值