请高度赞赏任何协助
var array = ["text1", "text2"];
for(var i = 0; i < array.length; i++) {
document.getElementById("printarray").innerHTML = array[i]; // line 1
Console.log(array[i]); // line 2
}
第1行仅打印数组中的最后一个文本。
第2行打印所有文本
为什么这是因为我想在printarray中打印所有数据<p>
答案 0 :(得分:3)
您需要使用+=
将新数据附加到innerHTML
,而不是每次都像=
那样覆盖它。
var array = ["text1", "text2"];
for(var i = 0; i < array.length; i++) {
document.getElementById("printarray").innerHTML += array[i];
}
您还可以使用<br>
添加换行符,将每个元素放在一个新行上,以使事物更具可读性。
var array = ["text1", "text2"];
for(var i = 0; i < array.length; i++) {
document.getElementById("printarray").innerHTML += array[i] + "<br>";
}
答案 1 :(得分:2)
你这样做的方式,innerHTML
被重写,每次循环运行时只包含一个数组元素。
您可以构建一个包含数组中所有值的字符串,然后将innerHTML
设置为该字符串。这将覆盖该HTML元素中的任何内容 - 将其替换为数组中的所有元素。
var array = ["text1", "text2"];
var temp = "";
for(var i= 0; i < array.length; i++) {
temp += array[i];
}
document.getElementById("printarray").innerHTML = temp;
或者,您可以将每个字符串添加到innerHTML
,这会将数组中的每个字符串连接到HTML元素中已有的字符串。
var array = ["text1", "text2"];
for(var i= 0; i < array.length; i++) {
document.getElementById("printarray").innerHTML += array[i];
}