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?的主要内容,如果未能解决你的问题,请参考以下文章