json和javascript新手,帮助?
我有一个json文件,其中包含这样的问题和答案json和javascript新手,帮助?,javascript,json,Javascript,Json,我有一个json文件,其中包含这样的问题和答案 { "Questions": [ { "Q": "I enjoy playing video games" }, { "Q": "I enjoy reading" }, { "Q": "I enjoy watching tv" } ], "Answers": [ { "a": "Strongly Agree",
{
"Questions": [
{ "Q": "I enjoy playing video games" },
{ "Q": "I enjoy reading" },
{ "Q": "I enjoy watching tv" }
],
"Answers": [
{
"a": "Strongly Agree",
"b": "Agree",
"c": "Neutral",
"d": "Disagree",
"e": "Strongly Disagree"
}
]
}
每个问题的答案总是一样的。我试图用javascript做一个循环,以显示每个问题及其下面的答案,类似这样
1.I enjoy video games
RadioButton:Strongly agree RadioButton:Agree etc...
2. I enjoy reading
RadioButton:Strongly agree RadioButton:Agree etc...
现在我有这个,但它不起作用
$.getJSON("questions.json",function(data)
{
$.each(data, function(i,data)
{
var div = document.createElement("div");
div.setAttribute("id", i);
document.createElement("div").setAttribute("id", i);
var div_data = "<div class='questions'><h2>" + data.Questions.Q +"</h2><br />"+
"<input type='radio' name='q" + i + "' id='q" + i + 1+"' value='"+data.Answers.a+"'/>" +
"<label for='q" + i + 1+"'>" + data.Answers.a + "</label>"+
"<input type='radio' name='q" + i + "' id='q" + i + 2+"' value='"+data.Answers.b+"'/>" +
"<label for='q" + i + 2+"'>" + data.Answers.b + "</label>" +
"<input type='radio' name='q" + i + "' id='q" + i + 3+"' value='"+data.Answers.c+"'/>" +
"<label for='q" + i + 3+"'>" + data.Answers.c + "</label>" +
"<input type='radio' name='q" + i + "' id='q" + i + 4+"' value='"+data.Answers.d+"'/>" +
"<label for='q" + i + 4+"'>" + data.Answers.d + "</label>" +
"<input type='radio' name='q" + i + "' id='q" + i + 5+"' value='"+data.Answers.e+"'/>" +
"<label for='q" + i + 5+"'>" + data.Answers.e + "</label>"
+"</div>" ;
document.getElementById("box").appendChild(div);
div.innerHTML = div_data;
});
});
$.getJSON(“questions.json”),函数(数据)
{
$。每个(数据,函数(i,数据)
{
var div=document.createElement(“div”);
div.setAttribute(“id”,i);
document.createElement(“div”).setAttribute(“id”,i);
var div_data=”“+data.Questions.Q+“
”+
"" +
“”+数据。答案。a+“”+
"" +
“”+数据。答案。b+“”+
"" +
“”+data.Answers.c+“”+
"" +
“”+data.Answers.d+“”+
"" +
“”+data.Answers.e+“”
+"" ;
文件.getElementById(“框”).appendChild(div);
div.innerHTML=div_数据;
});
});
您必须循环查看数据。问题
。请参阅下面的代码。我还优化了您的代码,以便立即追加HTML,而不是单独为每个元素追加
另一个注意事项:您应该将i+1、1+2、1+3等部分更改为更合适的部分。目前,只是添加了它,因为它位于字符串上下文中。即使添加括号,逻辑仍然有缺陷:对于i=1,i+2=3
。对于i=2,i+1也等于3
我用I+“\u 1”
替换了I+1+”
,让您了解正确的方法
$.getJSON("questions.json",function(data)
{
var html = "";
$.each(data.Questions, function(i, question)
{
html += "<div id=" + i + ">" +
"<div class='questions'><h2>" + question.Q +"</h2><br />"+
"<input type='radio' name='q" + i + "' id='q" + i + "_1' value='"+data.Answers.a+"'/>" +
"<label for='q" + (i + "_1'>" + data.Answers.a + "</label>"+
"<input type='radio' name='q" + i + "' id='q" + i + "_2' value='"+data.Answers.b+"'/>" +
"<label for='q" + i + "_2'>" + data.Answers.b + "</label>" +
"<input type='radio' name='q" + i + "' id='q" + i + "_3' value='"+data.Answers.c+"'/>" +
"<label for='q" + i + "_3'>" + data.Answers.c + "</label>" +
"<input type='radio' name='q" + i + "' id='q" + i + "_4' value='"+data.Answers.d+"'/>" +
"<label for='q" + i + "_4'>" + data.Answers.d + "</label>" +
"<input type='radio' name='q" + i + "' id='q" + i + "_5' value='"+data.Answers.e+"'/>" +
"<label for='q" + i + "_5'>" + data.Answers.e + "</label>"
+ "</div></div>" ;
});
$("#box").append(html);
});
$.getJSON(“questions.json”),函数(数据)
{
var html=“”;
$.each(数据、问题、函数(i、问题)
{
html+=“”+
“+question.Q+”
”+
"" +
“”+数据。答案。a+“”+
"" +
“”+数据。答案。b+“”+
"" +
“”+data.Answers.c+“”+
"" +
“”+data.Answers.d+“”+
"" +
“”+data.Answers.e+“”
+ "" ;
});
$(“#框”).append(html);
});
您没有正确访问JSON<代码>数据.问题.Q
和数据.答案.a
不正确
数据。问题和数据。答案都是数组。您必须循环遍历这些数组,并像访问数据一样访问它们。问题[i].Q
或者更改JSON以匹配您希望代码能够迭代它们的方式。您可以修复其中一个,但两者必须匹配。在我看来,您希望修复问题的代码和答案的JSON,但这是您可以做出的设计决策。这听起来像是一个完美的用例。酷,我会检查它。但是现在,还有其他建议吗?使用Firefox的Firebug或Chrome开发者工具,在你的.each块中放置一个断点,看看i的值是多少。您还可以查看数据的价值,以确保它是您所期望的。我希望您需要循环查看数据。但是问题。为什么Questions
不只是一个列表?例如:[“我喜欢玩电子游戏”,“我喜欢阅读”,“我喜欢看电视”]
我更喜欢你的代码,但我得到的问题不是在线问题。请再次尝试,使用小写的q
。另外,请看一下我对你的函数逻辑的评论,以及编辑后的代码,这提供了一个更好的方法。哦,不,这是我的错误,所有的答案看起来都很好,但是我的答案没有用单选按钮定义,除此之外,你复制了我的全部代码吗?您收到的错误表明未定义数据.问题。所以,您的JSON可能看起来不像预期的那样。我将两者都使用,但我理解您的意思。我无法从数据中获取答案。问题