【发布时间】:2015-10-21 23:26:07
【问题描述】:
这是我第一次请求帮助(仍然是一个新手编码器)所以请不要犹豫告诉我我在做一些愚蠢的事情。
我已经构建了一个包含数千个项目的 JSON 文件,我希望能够从该文件动态填充各个页面上的下拉菜单,然后根据之前的选择动态填充下拉菜单。我对此进行了彻底的研究,但似乎我发现的大多数教程和问题似乎都不适用于这种特定的方式。本质上,我加载了页面,但项目无法填充;也就是说,下拉菜单是空的。控制台只显示一个错误,根据我能找到的所有内容,这表明 CDN 没有被加载。所以,这里是:
<html>
<head>
<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
</head>
<body>
<select id="mainhand"></select>
<br>
<select id="offhand"></select>
<script type="text/javascript">
$(document).ready(function() {
//request the JSON data and parse into the select element
$.getJSON('http://nodtools.net/stats.json', function(obj) {
//iterate over the data and append a select option
$.each(data.item, function(key, value) {
// set the value of option to each item in the list as you iterate through
var option = $('<option><option/>').val(value.name).text(value.name);
// almost any of them can be added to the main hand
if (value.type == 'slash' || value.type == 'crush' || value.type == 'pierce' || value.type == 'whip' || value.type == 'staff') {
$('#mainhand').append(option);
};
// only shields and 1h weapons can be in off hand
if (value.hands == 1 || value.type == 'shield') {
$('#offhand').append(option);
// continue on for all types: bow, arrow, quiver, etc.
});
});
});
});
</script>
</body>
</html>
我有一种强烈的感觉,我错过了一些明显的东西......如果有人能指出它,我将不胜感激!
【问题讨论】:
-
"我研究到死了,但我发现的大多数教程和问题似乎都不适用于这种特殊方式" - 我想这是因为每次显示下拉菜单时都用数千个项目解析 JSON 是一个非常非常糟糕的主意,因为大多数时候,您可能只需要 JSON 中的 5 或 10 个项目。
-
检查该链接。我认为这就是您想要实现的目标。
-
具体的问题或问题是什么?
-
您没有指出什么不工作,但您不能将相同的
<option>添加到 2 个不同的<select>。你需要.clone()它。
标签: javascript jquery json dropdown