Javascript:打印Y,X次

Javascript:打印Y,X次,javascript,loops,for-loop,printing,innerhtml,Javascript,Loops,For Loop,Printing,Innerhtml,我觉得我可能犯了一个根本性的错误。我希望有人能帮助我 function countdown() { x = 5; for (i = x; i > 0; i--) { document.getElementById('display').innerHTML = (i + " "); } } 这是一个非常小的,简单的复制我的问题 我有一个长函数。在该函数中有一个变量,在本例中为X 我想在元素中插入一些东西(在本例中为:#display)X次 我想最好的方法是使用fo

我觉得我可能犯了一个根本性的错误。我希望有人能帮助我

function countdown() {

  x = 5;

  for (i = x; i > 0; i--) {
    document.getElementById('display').innerHTML = (i + " ");
  }

}
这是一个非常小的,简单的复制我的问题

我有一个长函数。在该函数中有一个变量,在本例中为X

我想在元素中插入一些东西(在本例中为:#display)X次

我想最好的方法是使用for循环,从X开始倒数1,每次插入我想要的字符串

但当它运行时,只返回1。(在本例中,我希望它返回“54321”)


有人能给我解释一下为什么这不起作用吗?我已经为此绞尽脑汁好几个小时了。

因为您在每次迭代中都通过给
innerHTML
指定一个新值来覆盖元素的内容。您必须附加以下内容:

document.getElementById('display').innerHTML += (i + " ");
//                                           ^
这和

document.getElementById('display').innerHTML = 
    document.getElementById('display').innerHTML + (i + " ");

当然,如果您只是在循环中构建字符串并在循环后设置内容会更好:

var content = '';

for (i = x; i > 0; i--) {
  content += (i + " ");
}

document.getElementById('display').innerHTML = content;

这样可以避免在每次迭代时搜索文档中的元素。但是
.innerHTML
只在某种程度上有用,一旦开始执行更高级的操作,您还应该查看DOM操作函数(例如)。

因为您在每次迭代中都通过为
innerHTML
指定一个新值来覆盖元素的内容。您必须附加以下内容:

document.getElementById('display').innerHTML += (i + " ");
//                                           ^
这和

document.getElementById('display').innerHTML = 
    document.getElementById('display').innerHTML + (i + " ");

当然,如果您只是在循环中构建字符串并在循环后设置内容会更好:

var content = '';

for (i = x; i > 0; i--) {
  content += (i + " ");
}

document.getElementById('display').innerHTML = content;

这样可以避免在每次迭代时搜索文档中的元素。但是
.innerHTML
只在某种程度上有用,一旦开始执行更高级的操作,您还应该查看DOM操作函数(例如)。

因为您在每次迭代中都通过为
innerHTML
指定一个新值来覆盖元素的内容。您必须附加以下内容:

document.getElementById('display').innerHTML += (i + " ");
//                                           ^
这和

document.getElementById('display').innerHTML = 
    document.getElementById('display').innerHTML + (i + " ");

当然,如果您只是在循环中构建字符串并在循环后设置内容会更好:

var content = '';

for (i = x; i > 0; i--) {
  content += (i + " ");
}

document.getElementById('display').innerHTML = content;

这样可以避免在每次迭代时搜索文档中的元素。但是
.innerHTML
只在某种程度上有用,一旦开始执行更高级的操作,您还应该查看DOM操作函数(例如)。

因为您在每次迭代中都通过为
innerHTML
指定一个新值来覆盖元素的内容。您必须附加以下内容:

document.getElementById('display').innerHTML += (i + " ");
//                                           ^
这和

document.getElementById('display').innerHTML = 
    document.getElementById('display').innerHTML + (i + " ");

当然,如果您只是在循环中构建字符串并在循环后设置内容会更好:

var content = '';

for (i = x; i > 0; i--) {
  content += (i + " ");
}

document.getElementById('display').innerHTML = content;

这样可以避免在每次迭代时搜索文档中的元素。但是
.innerHTML
只在某种程度上有用,一旦你开始进行更高级的操作,你还应该看看DOM操作函数(例如)。

你的意思可能是
innerHTML+=i+”
你的意思可能是
innerHTML+=i+“”
你的意思可能是
innerHTML+=i+“”
您的意思可能是
innerHTML+=i+“”