2

を使用して DocumentFragment を作成し、document.createDocumentFragment()それに子を追加してから、バッファを何かに追加すると、バッファのすべての子が消えたように見えます。例:

var buffer = document.createDocumentFragment() ;

for (var i = 1; i <= 10; i++)
{
    var div = document.createElement('div');
    div.innerHTML = i;
    buffer.appendChild(div);
}

console.log( 'buffer: ' , buffer );

document.getElementById('container').appendChild(buffer);

console.log( 'buffer now: ' , buffer );

ここで、最初の console.log では、バッファの childNodes に 10 の子があり、2 番目の childNodes には 0 があります。

バッファをキャッシュし、毎回子を追加する必要がないようにするために、子ノードをどこかに保持し、リセットしない方法はありますか?

4

1 に答える 1

1

の性質を説明しましたDocumentFragment。同じコンテンツを再利用したい場合は、毎回ドキュメントに追加する前にフラグメントを複製できます。

var bufferCopy = buffer.cloneNode(true);
document.getElementById('container').appendChild(bufferCopy);
于 2012-06-06T13:22:02.550 に答える