cloneNode() メソッド
Node.cloneNode()
cloneNode() メソッドは、 Node オブジェクトのコピー(複製)を作成するメソッドです。 引数のオプションでツリー構造もコピーするかを指定できます。
document.getElementById('list_example').cloneNode( true );
詳しくは Example を参照してください
コピーされただけでは表示されません。 Document オブジェクトに属する必要があります。Node.appendChild() メソッドで既存のオブジェクトに追加することで表示されます。
詳しくは、エレメントの作成について
を参照してください。
複製されると元の Node の属性と値も複製されます。id属性は固有である必要がありますが、複製されてしまいます。複製後に変更する必要があるかもしれません。
addEventListener() メソッドやスクリプトから追加されたイベントハンドラー(Element.onclick="...")は複製されません。
<canvas>といった操作や計算で描写された画像も複製されません。
別の Document にオブジェクトの複製を行う場合は Document.importNode() メソッドを使用します。
ページ内 Index
- ad -
構文(Syntax)
返り値は Node オブジェクト。もしくは空の DocumentFragment を返します。
Node = Node.cloneNode( flgTree );
引数(Parameter Values)
| Value | 摘要 |
|---|---|
| flgTree | 元の Node オブジェクトのツリー構造も複製するか/否か。Boolean 型で指定 |
返り値(Return Values)
| Type | 摘要 |
|---|---|
| Node | 複製された Node オブジェクト |
Example
.cloneNode() メソッドの例です。この例では id 属性も複製されることを考慮していません。
この例では、同じ id 属性の値をもつオブジェクトが複数コピーされます。
- ad -
関連するメソッド
Node インターフェイスにおいて関連するメソッドには以下があります。Element オブジェクトではなく、Node オブジェクトや NodeList を返す場合があります。
| 関連メソッド | 概要 |
|---|---|
| .appendChild() | 引数の Node を最後尾に追加 |
| .cloneNode() | Nodeを複製 |
| .compareDocumentPosition() | ノードの相対的な位置 |
| .contains() | 引数のNodeが子孫か否か Boolean型 |
| .getBoxQuads() | NodeのCSSにおいて関連するNodeをリストで返す |
| .getRootNode() | NodeのルートNodeを返す |
| .hasChildNodes() | 子Nodeを持っているか Boolean型 |
| .insertBefore() | Nodeを指定Nodeの前に挿入 |
| .remove() | 自身を削除 |
| .removeChild() | 指定した子Nodeを削除 |
| .replaceChild() | 指定した子Nodeを置き換える |
