【问题标题】:for loop works fine with console.log but not innerHTML?for 循环适用于console.log 但不是innerHTML?
【发布时间】:2016-03-23 00:29:25
【问题描述】:

你好,我对 javascript 很陌生,如果答案似乎很明显,请原谅我......

这是我的代码,点击正文中的按钮即可执行

function q() { 

    var A = document.getElementById("time_one").value;
    var B = document.getElementById("time_two").value;
    var C = document.getElementById("post_number").value;

    var D = (B - A) / C;

    for ( var x = A; x < B; x = x + D ) {

    document.getElementById("q_box").innerHTML = x + "<br />";

    }


}

我很确定错误在 for 循环中...输出应该是 A 和 B 之间的数字列表。将 innerHTML = 更改为 innerHTML += 也没有工作?

【问题讨论】:

    标签: javascript html for-loop innerhtml console.log


    【解决方案1】:
    function q() { 
    
        var A = +document.getElementById("time_one").value;
        var B = +document.getElementById("time_two").value;
        var C = +document.getElementById("post_number").value;
    
        var D = (B - A) / C;
    
        for ( var x = A; x < B; x = x + D ) {
    
        document.getElementById("q_box").innerHTML += x + "<br />";
    
        }
    
    }
    

    你应该转换int中的值,你应该使用+=

    【讨论】:

      【解决方案2】:

      使用for 循环内的innerHTML 代码,您始终使用最后一次迭代值设置值。因此,您需要将代码更新为

       for ( var x = A; x < B; x = x + D ) {
      
          document.getElementById("q_box").innerHTML += x + "<br />";
      
          }
      

      var y = "";
       for ( var x = A; x < B; x = x + D ) {
      
           y += x + "<br />";
      
          }
      document.getElementById("q_box").innerHTML = y;
      

      我会建议您选择第二个选项,因为最好立即设置更新的值,而不是提取值并为每次迭代进行更新。

      【讨论】:

        猜你喜欢
        • 2014-01-29
        • 1970-01-01
        • 2018-03-13
        • 1970-01-01
        • 2016-01-31
        • 2014-12-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多