現在、文字列のみを使用してドキュメント フラグメントを埋める唯一の方法は、一時オブジェクトを作成し、子をループしてフラグメントに追加することです。
- ドキュメントに追加されないため、何もレンダリングされないため、パフォーマンスに影響はありません。
- ループが表示されますが、最初の子をループしているだけです。ほとんどのドキュメントにはいくつかのセミルート要素しかないので、それも大したことではありません。
ドキュメント全体を作成したい場合は、代わりに DOMParser を使用してください。この回答をご覧ください。
コード:
var frag = document.createDocumentFragment(),
tmp = document.createElement('body'), child;
tmp.innerHTML = '<div>x</div><span>y</span>';
while (child = tmp.firstElementChild) {
frag.appendChild(child);
}
ワンライナー (読みやすくするために 2 行) (入力: String html
、出力: DocumentFragment frag
):
var frag =document.createDocumentFragment(), t=document.createElement('body'), c;
t.innerHTML = html; while(c=t.firstElementChild) frag.appendChild(c);