0

我正在使用 For 循环遍历数组并返回相关字符串。当我使用 getElementById 时,我只得到最后一个字符串,但如果我使用 document.write,一切都很好。

var names = ["John","Jamie","Jessica","Judy","Jeffery","Joy"];
for (i=0,tot=names.length; i < tot; i++) {
 document.getElementById("namelist").innerHTML = names[i];
}

HTML是 <p id="namelist">list of names go here</p>

当我跑步时,我得到的是“欢乐”。在这种情况下不能使用 getElementById 吗?有没有其他方法可以在一个元素中获取返回的列表?

我已经阅读了这里的其他一些问题和答案,但没有一个是我想要的

谢谢!

4

5 回答 5

2

您正在循环中设置一个值。

首先,您将其设置为 John。然后你将它设置为 Jamie(所以它不再是 John)等等。

如果要附加一个值,则需要执行以下操作:

document.getElementById("namelist").innerHTML = document.getElementById("namelist").innerHTML + names[i];

(使用+=运算符会更短)

如果您只想将全部内容放入其中,则无需使用循环:

document.getElementById("namelist").innerHTML = names.join(' ');
于 2012-05-15T06:13:05.763 回答
0
var names = ["John","Jamie","Jessica","Judy","Jeffery","Joy"];
for (i=0,tot=names.length; i < tot; i++) {
 document.getElementById("namelist").innerHTML += names[i];
}

+= 而不是 =

于 2012-05-15T06:15:10.850 回答
0

如果要打印所有名称,则需要在元素的 innerHTML 中附加所有名称。

var names = ["John","Jamie","Jessica","Judy","Jeffery","Joy"];
for (i=0,tot=names.length; i < tot; i++) {
 document.getElementById("namelist").innerHTML += names[i]+"<br/>" ;
}
于 2012-05-15T06:16:24.877 回答
0
document.getElementById("namelist").innerHTML += names[i] + "<br/>" 

很可能是你想要的

我使用的运算符是+=where

a += b;

是相同的

a = a + b;

更简单的方法是

var names = ["John","Jamie","Jessica","Judy","Jeffery","Joy"];
document.getElementById("namelist").innerHTML = names[i].join(", ");
于 2012-05-15T06:16:50.210 回答
0

快速写下将 = 替换为 +=

var names = ["John","Jamie","Jessica","Judy","Jeffery","Joy"];
for (i=0,tot=names.length; i < tot; i++) {
 document.getElementById("namelist").innerHTML += names[i];
}
于 2012-05-15T06:18:56.200 回答