Node.cloneNode

概要

現在のノードの複製を返します。

構文

var dupNode = node.cloneNode(deep);
node
複製するノード
dupNode
新しく生成される node の複製
deep Optional
node の子孫ノードも複製する場合は truenode のみを複製する場合は false

注記: DOM4 の仕様では (Gecko 13.0 (Firefox 13.0 / Thunderbird 13.0 / SeaMonkey 2.10) で実装) 、 deep は省略可能な引数です。省略された場合、 deep には true が渡され、深い複製を生成します。浅い複製を生成するには、 deepfalse にする必要があります。

以前のDOMの仕様を実装しているブラウザでは、 deep は必須の引数です。

var p = document.getElementById("para1");
var p_prime = p.cloneNode(true);

注記

ノードを複製すると、そのノードのすべての属性とその値がコピーされます。つまり、HTML属性のイベントを含みます。addEventListener() を使用したものや、要素のプロパティに代入されたもの (例: node.onclick = fn;) は複製されません。

cloneNode によって返される複製ノードは、 Node.appendChild() や同種のメソッドによってドキュメントの一部である他のノードに追加されるまでは、ドキュメントの一部ではありません。また、他のノードに追加されるまでは、親ノードを持ちません。

deepfalse に設定されていると、どの子ノードも複製されません。 そのため、そのノードに含まれる Text ノードも複製されません。

deeptrue に評価できる場合、サブツリー全体 (子 Text ノードにあるテキストを含む) もコピーされます。 <img><input> 要素などの空ノードの場合には deep を true と false のどちらに設定してもかまいません。

注意: cloneNode() を使用すると、ドキュメント内で要素の id が重複する可能性があります。

別のドキュメントに追加するためにノードを複製する場合は、代わりに Document.importNode() を使用してください。

ブラウザ実装状況

現在、互換性データを可読形式の JSON フォーマットに置き換えているところです。 この互換性一覧は古い形式を使っており、これに含まれるデータの置き換えが済んでいません。 手助けしていただける場合は、こちらから!
機能 Chrome Firefox (Gecko) Internet Explorer Opera Safari
基本サポート (有) (有) (有) (有) (有)
deep 引数の省略 Yes
(初期値は false)
13.0 (13.0) ? ? Yes
(初期値は false)
機能 Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
基本サポート (有) (有) (有) (有) (有) (有)
deep 引数の省略 ? ? 13.0 (13.0) ? ? ?

仕様書

ドキュメントのタグと貢献者

このページの貢献者: mfuji09, AshfaqHossain, teoli, ethertank, dextra, Potappo, Mgjbot, Shoot
最終更新者: AshfaqHossain,