关注
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>题目</title>
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no">
<script>
var data = [{
"name": "北京",
"items": [{
"name": "北京",
"items": [{
"name": "东城区"
},
{
"name": "西城区"
}
]
}]
}, {
"name": "浙江",
"items": [{
"name": "杭州",
"items": [{
"name": "上城区"
},
{
"name": "桐庐县"
}
]
},
{
"name": "宁波",
"items": [{
"name": "象山县"
}]
}
]
}]
window.onload = function () {
var div = document.createElement('div');
var option = "";
var val = "";
var select1 = document.createElement("select");
var select2 = document.createElement("select");
var select3 = document.createElement("select");
select1.setAttribute("id", "select1");
select2.setAttribute("id", "select2");
select3.setAttribute("id", "select3");
select1.innerHTML = "<option> --请选择-- </option>";
select2.innerHTML = "<option> --请选择-- </option>";
select3.innerHTML = "<option> --请选择-- </option>";
div.appendChild(select1);
div.appendChild(select2);
div.appendChild(select3);
for (var i = 0; i < data.length; i++) {
option = document.createElement('option');
option.setAttribute("value", data[i].name);
option.innerHTML = data[i].name;
select1.appendChild(option);
}
document.body.appendChild(div);
select1.addEventListener('change', changeSelect1);
select2.addEventListener('change', changeSelect2);
function changeSelect1(e) {
select2.options.length = 1;
select3.options.length = 1;
val = e.target.value;
for (var i = 0; i < data.length; i++) {
if (data[i].name === val) {
for (var j = 0; j < data[i].items.length; j++) {
option = document.createElement('option');
option.setAttribute("value", data[i].items[j].name);
option.innerHTML = data[i].items[j].name;
select2.appendChild(option);
}
break;
}
}
}
function changeSelect2(e) {
select3.options.length = 1;
var val2 = e.target.value;
for (var i = 0; i < data.length; i++) {
if (data[i].name === val) {
for (var j = 0; j < data[i].items.length; j++) {
if (data[i].items[j].name === val2) {
for (var z = 0; z < data[i].items[j].items.length; z++) {
option = document.createElement('option');
option.setAttribute("value", data[i].items[j].items[z].name);
option.innerHTML = data[i].items[j].items[z].name;
select3.appendChild(option);
}
break;
}
}
break;
}
}
}
}
</script>
</head>
<body>
</body>
</html>
这个题目可以用你的方法,但是如果选项多起来了,就有点麻烦了。可以用上面我写的这个方法,用遍历更好,我用的是creatElement的方式添加option,还有就是题目那个JSON有点问题,我这改了一下。
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
01-14 16:23
广州商学院 Java 点赞 评论 收藏
分享
02-10 17:07
上海财经大学 Java 点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 牛客新年AI问运 #
13872次浏览 168人参与
# 牛友们,签完三方你在忙什么? #
137361次浏览 993人参与
# 牛客AI体验站 #
17857次浏览 302人参与
# 你最讨厌面试被问什么 #
1192次浏览 26人参与
# 担心入职之后被发现很菜怎么办 #
282484次浏览 1185人参与
# 如何缓解入职前的焦虑 #
258843次浏览 1451人参与
# 校招第一份工作你干了多久? #
139383次浏览 609人参与
# 牛客租房专区 #
151380次浏览 1479人参与
# 秋招开始捡漏了吗 #
229453次浏览 1044人参与
# 秋招投递攻略 #
268782次浏览 2553人参与
# 九月了,是考研还是就业? #
89220次浏览 556人参与
# 搜狐工作体验 #
4116次浏览 29人参与
# 机械人求职现状 #
33628次浏览 297人参与
# 这份实习,有没有动摇过你的职业方向? #
2151次浏览 38人参与
# 我是XXX,请攻击我最薄弱的地方 #
61776次浏览 409人参与
# 用友工作体验 #
18083次浏览 151人参与
# 你的工资什么时候发? #
57468次浏览 355人参与
# 今年秋招还有金九银十吗 #
75091次浏览 506人参与
# 你的实习什么时候入职 #
348072次浏览 2291人参与
# 职场吐槽大会 #
326201次浏览 2249人参与
