原生js 城市联动

let cityData = [
        {id:1,name:"广东省",f_id:0},
        {id:100,name:"深圳市",f_id:1},
        {id:2001,name:"龙华新区",f_id:100},
        {id:2002,name:"龙岗区",f_id:100},
        {id:101,name:"广州市",f_id:1},
        {id:2003,name:"白云区",f_id:101}  ,
        {id:2004,name:"肇庆区",f_id:101},
        {id:2,name:"四川省",f_id:0},
        {id:200,name:"南充市",f_id:2},
        {id:20011,name:"蓬安县",f_id:200},
         {id:20021,name:"营山县",f_id:200},
        {id:3,name:"湖南省",f_id:0},
         {id:300,name:"长沙市",f_id:3},
        {id:20011,name:"蓬安县1",f_id:300},
        {id:20021,name:"营山县1",f_id:3000},
    ];

    let shen =  document.querySelector('#shen');
    console.log(shen.getAttribute('name'))
    let city =  document.querySelector('#city');
    let region =  document.querySelector('#region');

    function get_children(fid,obj) {
        let option = document.createElement('option')
        for (item of cityData){
            if(item.f_id == fid){
                obj.add(new Option(item.name,item.id))
            }
        }
        obj.addEventListener('change',function (event) {
            let children = this.options;//获取子节点
            for (child of children){
                let c = child.selected
                if(c){
                    let val = child.value;
                    let selectName = obj.getAttribute('name')
                    if(selectName == 'shen'){
                        if(val == ''){
                            region.innerHTML = '<option value="">请选择地区</option>'
                            city.innerHTML = '<option value="">请选择地区</option>'
                            return
                        }
                        region.innerHTML = '<option value="">请选择地区</option>'
                        city.innerHTML = '<option value="">请选择地区</option>'
                        get_children(child.value,city)
                    } else if(selectName == 'city'){
                        if(val == ''){
                            region.innerHTML = '<option value="">请选择地区</option>'
                            return
                        }
                        region.innerHTML = '<option value="">请选择地区</option>'
                        get_children(child.value,region)
                    } else if(selectName == 'region'){

                    }
                }
            }
        })
    }

    get_children(0,shen)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值