Javascript each()只打印来自外部Json的最后一项
我正在尝试使用jQuery进行测试,并从外部Json文件中提取问题和答案 我的问题是我的foreach循环只打印出Json项中的最后一个元素 这是我的Jquery:Javascript each()只打印来自外部Json的最后一项,javascript,jquery,json,Javascript,Jquery,Json,我正在尝试使用jQuery进行测试,并从外部Json文件中提取问题和答案 我的问题是我的foreach循环只打印出Json项中的最后一个元素 这是我的Jquery: function postData(data) { var html = ""; $.each(data, function(key, value) { html += "<ul><h3><span>" + key + "</span></h3>";
function postData(data) {
var html = "";
$.each(data, function(key, value) {
html += "<ul><h3><span>" + key + "</span></h3>";
$.each(value.answers, function(i, j){
html += "<li>" + j.answer + "</li>";
});
html += "</ul>";
});
$('#content').append(html);
};
然而,我得到的唯一答案是:
Question title
- answer 4
Question title two
- False
我只是在奇怪地循环它们,还是我没有正确地打印对象
如果你需要我澄清什么,请告诉我。谢谢。您的JSON存在缺陷,同一对象中存在重复的属性名。与此相反:
[{
"answer" : "answer one",
"answer" : "answer two",
"answer" : "answer three",
"answer" : "answer four"
}]
如果每个应答属性都位于其自己的对象中,则需要这样做:
[
{"answer" : "answer one"},
{"answer" : "answer two"},
{"answer" : "answer three"},
{"answer" : "answer four"}
]
正如您所看到的,您在同一个对象中有重复的属性名称,这只会给出最后一个属性的结果,实际上在严格模式下是一个错误(使用严格模式的另一个原因),因为解释器会为您标记此错误
工作演示:
您可能还应该修复HTML,因为
(,
和
)的有效子对象很少,而且
不是合法的子对象。您可以将
放在
前面,如下所示:
html += "<h3><span>" + key + "</span></h3><ul>";
html+=“”+key+“”;
您的JSON存在缺陷,同一对象中存在重复的属性名。与此相反:
[{
"answer" : "answer one",
"answer" : "answer two",
"answer" : "answer three",
"answer" : "answer four"
}]
如果每个应答属性都位于其自己的对象中,则需要这样做:
[
{"answer" : "answer one"},
{"answer" : "answer two"},
{"answer" : "answer three"},
{"answer" : "answer four"}
]
正如您所看到的,您在同一个对象中有重复的属性名称,这只会给出最后一个属性的结果,实际上在严格模式下是一个错误(使用严格模式的另一个原因),因为解释器会为您标记此错误
工作演示:
您可能还应该修复HTML,因为
(,
和
)的有效子对象很少,而且
不是合法的子对象。您可以将
放在
前面,如下所示:
html += "<h3><span>" + key + "</span></h3><ul>";
html+=“”+key+“”;
更改了answers对象中的键名称
{
"Question Title":
{
"answers":
[{
"answer1" : "answer one",
"answer2" : "answer two",
"answer3" : "answer three",
"answer4" : "answer four"
}]
},
"Question title two":
{
"answers":
[{
"answer1" : "True",
"answer2" : "False"
}]
}
};
更改了answers对象中的键名称
{
"Question Title":
{
"answers":
[{
"answer1" : "answer one",
"answer2" : "answer two",
"answer3" : "answer three",
"answer4" : "answer four"
}]
},
"Question title two":
{
"answers":
[{
"answer1" : "True",
"answer2" : "False"
}]
}
};
html无效,h3
不能是ul
html无效,h3
不能是ul
的孩子哦,我明白你的意思了。多谢各位@user3113376-看看我在最后添加的建议,让你的HTML合法化。哦,我明白你的意思了。多谢各位@user3113376-查看我在最后添加的建议,使您的HTML也合法。