这是为了存储多个问题的所选答案。当我使用这段代码时,它只检查第一个问题并忽略其他问题。
for(i = 0; i < questions.length-1; i++){
radios = document.getElementsByName(questions[i]);
for (var t = 0; length < radios.length; t++) {
if (radios[t].checked) {
var qResults = JSON.parse(localStorage["qResults"]);
num = radios[t].value;
checked = num.toString();
var temp = (id[0] + ";" + questions[i] + ";" + checked);
alert(temp);
qResults.push(temp);
localStorage["qResults"] = JSON.stringify(qResults);
}
}
alert("question finished");
}
答案 0 :(得分:0)
你的内循环是错误的。改变这个:
for (var t = 0; length < radios.length; t++) {
为:
for (var t = 0; t < radios.length; t++) {
旁注:我建议您在循环之前读取本地存储,然后在循环之后将其写回,而不是针对每个问题执行此操作。
答案 1 :(得分:0)
除了Guffa的解决方案之外,我认为如果您可以将var qResults
和localStorage["qResults"]
移到第二个for
循环之外更有意义:
var qResults = JSON.parse(localStorage["qResults"]);
for loop I {
for loopII {}
}
localStorage["qResults"] = JSON.stringify(qResults);