--- title: DocumentFragment slug: Web/API/DocumentFragment tags: - API - DOM - DocumentFragment - Reference - インターフェイス - ウェブコンポーネント - 文書 translation_of: Web/API/DocumentFragment ---
{{ APIRef("DOM") }}
DocumentFragment
インターフェイスは、親ノードを持たない最小限の文書オブジェクト (文書の断片) を表します。これは {{domxref("Document")}} の軽量版として使用され、標準の文書のようにノードで構成される文書構造の区間を格納します。重要な違いは、文書の断片はアクティブな文書ツリー構造の一部ではないため、断片に対して変更を行っても、文書に影響したり、{{Glossary("reflow", "再フロー")}}を起こしたり、変更が行われたときに性能上の影響を及ぼしたりすることがないことです。
DocumentFragment
の一般的な利用方法は、まず一つ作成し、その中に DOM のサブツリーを構成し、 {{domxref("Node")}} インターフェイスの {{domxref("Node.appendChild", "appendChild()")}} または {{domxref("Node.insertBefore", "insertBefore()")}} などのメソッドを利用して断片を DOM に追加または挿入することです。こうすると断片のノードは DOM に移動し、空の DocumentFragment
が残ります。すべてのノードが文書に一括で挿入されるため、それぞれのノードが別個に挿入されれば、その度に再フローや描画が起動する可能性があるところが、この場合は一度しか起動されません。
このインターフェイスはウェブコンポーネントでも大いに役に立っています。 {{HTMLElement("template")}} 要素はその {{domxref("HTMLTemplateElement.content")}} プロパティに DocumentFragment
を含みます。
空の DocumentFragment
は {{domxref("document.createDocumentFragment")}} メソッドやコンストラクターを使って作成できます。
{{InheritanceDiagram}}
このインターフェイスには固有のプロパティはありませんが、その親である {{domxref("Node")}} のプロパティを継承し、 {{domxref("ParentNode")}} インターフェイスのプロパティを実装しています。
DocumentFragment
オブジェクトの子である型 {{domxref("Element")}} のすべてのオブジェクトを含む、「生」の {{domxref("HTMLCollection")}} を返します。DocumentFragment
オブジェクトの最初の子である {{domxref("Element")}}、または無ければ null
を返します。DocumentFragment
オブジェクトの最後の子である {{domxref("Element")}}、または無ければ null
を返します。DocumentFragment
が持つ子の数を表す unsigned long
を返します。DocumentFragment
オブジェクトを返します。このインターフェイスはその親である {{domxref("Node")}} のメソッドを継承し、 {{domxref("ParentNode")}} インターフェイスのメソッドを実装しています。
DocumentFragment
の中で、文書の順序で見た場合に、指定されたセレクターに一致する最初の {{domxref("Element")}} ノードを返します。DocumentFragment
の中で、指定されたセレクターに一致するすべての {{domxref("Element")}} ノードの {{domxref("NodeList")}} を返します。DocumentFragment
の中で、文書の順序で見た場合に、指定された ID に一致する最初の {{domxref("Element")}} ノードを返します。仕様書 | 状態 | 備考 |
---|---|---|
{{SpecName('DOM WHATWG', '#interface-documentfragment', 'DocumentFragment')}} | {{Spec2('DOM WHATWG')}} | コンストラクターと {{domxref("ParentNode")}} の実装を追加。 |
{{SpecName('Selectors API Level 1', '#the-apis', 'DocumentFragment')}} | {{Spec2('Selectors API Level 1')}} | querySelector() と querySelectorAll() メソッドを追加。 |
{{SpecName('DOM3 Core', 'core.html#ID-B63ED1A3', 'DocumentFragment')}} | {{Spec2('DOM3 Core')}} | {{SpecName('DOM2 Core')}} より変更なし |
{{SpecName('DOM2 Core', 'core.html#ID-B63ED1A3', 'DocumentFragment')}} | {{Spec2('DOM2 Core')}} | {{SpecName('DOM1')}} より変更なし |
{{SpecName('DOM1', 'level-one-core.html#ID-B63ED1A3', 'DocumentFragment')}} | {{Spec2('DOM1')}} | 初回定義 |
{{Compat("api.DocumentFragment")}}