3

以下は、1から10までの数字の連続リストを作成するコードです。このリストを取得し、innerHTMLを使用してdiv「ページネーション」に出力したいと思います。ただし、スクリプトを実行すると、出力されるのは数字の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これはループ全体で毎回置き換えられるため、最後の反復のみが表示されます。

それを作ってみて=ください+=

またはさらに良いことに、それを文字列に構築し、innerHTMLその最後の文字列で一度だけ設定します。文字列を100回ではなく1回だけHTMLとして解析する必要があるため、これはより高速になります。

于 2010-03-07T08:12:08.803 に答える