【问题标题】:Why wont my loop within a loop in Javascript work?为什么我的循环在 Javascript 的循环中不起作用?
【发布时间】:2015-04-12 12:02:26
【问题描述】:

这是假设存储多个问题的选择答案。当我使用此代码时,它只检查第一个问题而忽略其他问题。

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

【问题讨论】:

    标签: javascript loops for-loop


    【解决方案1】:

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

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

    到:

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

    旁注:我建议您在循环之前读取本地存储,并在循环之后将其写回,而不是为每个问题都这样做。

    【讨论】:

      【解决方案2】:

      除了 Guffa 的修复之外,我认为如果您可以将 var qResults 和 localStorage["qResults"] 移到第二个 for 循环之外会更有意义:

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

      【讨论】:

      • 这意味着它将为每个单选按钮完成。将它移到循环之外会更好,所以它只完成一次。编辑:将它放在内部循环之外仍然意味着它已针对每个问题完成。
      猜你喜欢
      • 2022-01-26
      • 2018-10-11
      • 1970-01-01
      • 1970-01-01
      • 2020-12-24
      • 2022-01-03
      • 1970-01-01
      相关资源
      最近更新 更多