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を置き換える |