DOMDocumentFragment (JavaScript)

単純な (最小限の) 文書を表します。

定義場所

DOM (JavaScript)

メソッド

このクラスは、DOMNode (JavaScript) のメソッドを継承します。

使用法

DocumentFragment は 「単純」な (「最小限」の) Document オブジェクトです。文書のツリーの一部を抽出したり、 文書の新しい断片を作成したりする必要があることも少なくありません。断片を移動することで 文書を切り取ったり並べ替えたりするユーザーコマンドを実装することを 考えてみます。このような断片を保持できるオブジェクトが必要になりますが、 この目的では Node を使用するのが自然です。この操作に Document オブジェクトを使用することもできますが、 その基礎となる実装によっては Document オブジェクトが 複雑なオブジェクトになっている可能性があります。この目的で本当に必要なのは、 ごく単純なオブジェクトです。DocumentFragment は、 まさにそのオブジェクトです。

さらに、 さまざまな操作が引数として DocumentFragment オブジェクトを取ることがあります。 例えば、ノードを別の Node の子として挿入する場合には、DocumentFragment の すべての子ノードがそのノードの子リストに移動されます。

DocumentFragment ノードの子は、 文書の構造を定義する任意のサブツリーのトップを表す 0 個以上の ノードです。DocumentFragment ノードは 整形式 XML 文書である必要はありません。ただし、 整形式 XML 文書の解析対象エンティティに課される規則 (複数の トップノードを持つことができる) には従う必要があります。例えば、DocumentFragment が 子を 1 つ持ち、その子ノードを Text ノードにすることができるとします。このような構造モデルは、HTML 文書も 整形式 XML 文書も表しません。

DocumentFragment を Document (実際には子を取ることができる他の任意の Node) に 挿入すると、DocumentFragment 自体ではなく、DocumentFragment の子が Node に 挿入されます。このため、兄弟関係のノードを作成する場合は、DocumentFragment が非常に便利です。DocumentFragment はこれらのノードの親として機能するため、 ユーザーは、Node インターフェースの標準のメソッド (insertBefore や appendChild など) を使用できるからです。