原生js写三级联动 java_原生js实现三级联动

// 数据通常由后台返回,结构如下:

var citys = [

{ "name": "北京", "city": [{ "name": "北京", "area": ["东城区", "西城区", "崇文区", "宣武区", "朝阳区", "丰台区", "石景山区", "海淀区", "门头沟区", "房山区", "通州区", "顺义区", "昌平区", "大兴区", "平谷区", "怀柔区", "密云县", "延庆县"] }] },

{ "name": "天津", "city": [{ "name": "天津", "area": ["和平区", "河东区", "河西区", "南开区", "河北区", "红桥区", "塘沽区", "汉沽区", "大港区", "东丽区", "西青区", "津南区", "北辰区", "武清区", "宝坻区", "宁河县", "静海县", "蓟 县"] }] }

]

// 具体实现

// 获取省

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

province.options[0] = new Option('请选择省', -1)

// 获取市

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

city.options[0] = new Option('请选择市', -1)

// 获取县

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

county.options[0] = new Option('请选择县', -1)

citys.forEach(function (item, index) {

// 添加省

province.options[province.options.length] = new Option(item.name, index);

// 给省绑定事件

province.onchange = function () {

// 获取选择的省

var provinceValue = province.value;

// 首先清空市和区县

city.options.length = 0;

city.options[city.options.length] = new Option('请选择市', -1);

county.options.length = 0;

county.options[county.options.length] = new Option('请选择县', -1)

// 判断是否是‘请选择’

if (province.value !== '-1') {

// 然后给对应的省添加市

citys[provinceValue].city.forEach(function (item, index) {

city.options[city.options.length] = new Option(item.name, index);

// 给市绑定事件

city.onchange = function () {

// 获取选择的市

var cityValue = city.value;

// 清空县

county.options.length = 0;

county.options[county.options.length] = new Option('请选择县', -1);

// 判断选择的市是否是‘请选择’

if (cityValue !== '-1') {

// 设置市对应的县

citys[provinceValue].city[cityValue].area.forEach(function (item, index) {

county.options[county.options.length] = new Option(item, index);

})

}

}

})

}

}

})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值