【发布时间】:2014-10-22 20:31:56
【问题描述】:
我想要达到的目标
我有一个静态选择 html 选项,这些选项不会改变,但会决定其他选择框输出的内容。
<select id="firstselectbox">
<option value="first">This is the first</option>
<option value="second">This is the second</option>
<option value="third">This is the third</option>
<option value="fourth">This is the fourth</option>
<option value="fifth">This is the fifth</option>
</select>
目前,我写的代码不想输出以下内容:
选择 1:已选择选项first
选择 2:检查 jSon 文件,找到第一个和所有节点(第二层)并列出它们。当用户选择它时。
选择3:显示第三层
请注意* 是下面选择的选项 - 选择 1 是静态的,选择 2 和 3 是动态的。
Select 1 Select 2 Select 3
first* London Famous Famous
second Jersey London Famous
third North*
fourth South East
fifth South West
sixth
到目前为止我做了什么
var datajson = {"first":[{"jesery":[{"id":"jesery","name":"Jesery","jesery":[{"id":"famous","name":"Famous Famous"},{"id":"distance","name":"Distance"}]}],"dontknow":[{"id":"dontknow","name":"Dont Know"}]}],"second":[{"london":[{"id":"london","name":"London","london":[{"id":"f2f","name":"London Famous"},{"id":"famous","name":"Famous Famous"},{"id":"distance","name":"Distance"}]}]}],"third":[{"london":[{"id":"london","name":"London","london":[{"id":"f2f","name":"London Famous"},{"id":"famous","name":"Famous Famous"},{"id":"distance","name":"Distance"}]}],"north":[{"id":"north","name":"North","north":[{"id":"f2f","name":"London Famous"},{"id":"famous","name":"Famous Famous"},{"id":"distance","name":"Distance"}]}]}],"forth":[{"north":[{"id":"north","name":"North","north":[{"id":"f2f","name":"London Famous"},{"id":"famous","name":"Famous Famous"},{"id":"distance","name":"Distance"}]}],"dontknow":[{"id":"dontknow","name":"Dont Know"}]}],"fifth":[{"london":[{"id":"london","name":"London","london":[{"id":"f2f","name":"London Famous"},{"id":"famous","name":"Famous Famous"},{"id":"distance","name":"Distance"}]}],"southeast":[{"id":"southeast","name":"South East","southeast":[{"id":"distance","name":"Distance"}]}]}]}
$("#firstselectbox").on('change', function() {
$("select#firstselectbox").html('');
var locations = datajson[$(this).val()];
var locationString = '';
$.each(locations, function(i, item) {
console.log(locations[i]);
locationString += '<option id="'+ locations[i].id + '" value="' + locations[i].id + '">' + locations[i].name + '</option>';
});
$('#secondselectbox').html(locationString);
});
问题?
下面的代码是locationString += '<option id="'+ locations[i].id + '" value="' + locations[i].id + '">' + locations[i].name + '</option>';正在输出unidentified。
但是console.log(locations[i]); 正在输出从静态选择框(第一个、第二个等)中选择的数组。但是,试图将其分开似乎失败了。
当前代码正在输出unidentified。
【问题讨论】:
-
你应该先修复你的 json 结构......它似乎很乱
-
@RobertRozas 对我的用例的理想 json 文件有何建议?
-
你想在第一个选择中基本上选择
This is the first,然后用{"id":"famous","name":"Famous Famous"},{"id":"distance","name":"Distance"}填充第二个。这样可以吗?? -
@RobertRozas 是的,但是第三层呢?我将如何将静态元素与第二层联系起来? (如果有道理的话)
-
当我们到达第三层时,我迷路了……那是什么……我只看到两个(就像我的例子一样)……如果我的例子没问题,我可以用它...告诉我
标签: javascript jquery json