for 循环适用于console.log 但不是innerHTML?

Posted

技术标签:

【中文标题】for 循环适用于console.log 但不是innerHTML?【英文标题】:for loop works fine with console.log but not 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 += 也没有工作?

【问题讨论】:

【参考方案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;

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

【讨论】:

以上是关于for 循环适用于console.log 但不是innerHTML?的主要内容,如果未能解决你的问题,请参考以下文章

js for循环条件判断

for...in/ of, forEach 循环

for循环,定时器,闭包。

let const var 区别

es6种for循环中let和var区别

没有花括号(大括号)的for循环也能正确执行