3

以下是创建从 1 到 10 的数字顺序列表的代码。我想使用这个列表并在 div“分页”中使用 innerHTML 输出。但是,当我执行脚本时,唯一输出的是数字 10。当我改用 document.write 覆盖页面时,它会输出整个列表。有人可以告诉我我做错了什么吗?谢谢。

function generateNumbers() {
    var numbers = new Array();

    // start generating numbers
    for(var i = 1; i <= 10; i+= 1) {
        numbers.push( i );
    }

    // print numbers out.
    for(var i = 0; i < numbers.length; i++) {
        document.getElementById("pagination").innerHTML = numbers[i] + "<br>";
    }
}

在 HTML 中:

<div id="pagination"></div>
4

2 回答 2

7

好吧,你innerHTML在每一步都覆盖。
尝试:

document.getElementById("pagination").innerHTML += numbers[i] + "<br>";

或更好:

// no for loop
document.getElementById("pagination").innerHTML = numbers.join("<br>");
于 2010-03-07T08:09:37.370 回答
0
for(var i = 0; i < numbers.length; i++) {
    document.getElementById("pagination").innerHTML = numbers[i] + "<br>";
}

这将替换innerHTML循环中的每一次,因此您只能看到最后一次迭代。

尝试制作=一个+=.

Or even better, build it up in a string and set the innerHTML just once with that final string. This will be faster since it only has to parse the string as HTML once instead of 100 times.

于 2010-03-07T08:12:08.803 回答