为什么我的循环在Javascript循环中不起作用?

时间:2015-04-12 12:02:26

标签: javascript loops for-loop

这是为了存储多个问题的所选答案。当我使用这段代码时,它只检查第一个问题并忽略其他问题。

    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"); 
    }

2 个答案:

答案 0 :(得分:0)

你的内循环是错误的。改变这个:

for (var t = 0; length < radios.length; t++) {

为:

for (var t = 0; t < radios.length; t++) {

旁注:我建议您在循环之前读取本地存储,然后在循环之后将其写回,而不是针对每个问题执行此操作。

答案 1 :(得分:0)

除了Guffa的解决方案之外,我认为如果您可以将var qResultslocalStorage["qResults"]移到第二个for循环之外更有意义:

     var qResults = JSON.parse(localStorage["qResults"]);
     for loop I {
        for loopII {}
     }

     localStorage["qResults"] = JSON.stringify(qResults);