Node: cloneNode() メソッド
Baseline
広く利用可能
この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2015年7月以降、すべてのブラウザーで利用可能です。
cloneNode() は Node インターフェイスのメソッドで、このメソッドが呼び出されたノードの複製を返します。
引数でノードに含まれるサブツリーを一緒に複製するかどうかを制御できます。
ノードを複製すると、固有(インライン)のリスナーを含む、ノードのすべての属性とその値が複製されます。 addEventListener() を使って追加されたイベントリスナーや、要素のプロパティに代入されたイベントリスナー(例: node.onclick = someFunction)は複製されません。さらに、 <canvas> 要素では、描画された画像は複製されません。
警告:
cloneNode() を使用すると、文書内で要素の ID が重複する可能性があります。
元のノードに id 属性があり、複製を同じ文書に配置する場合は、複製の ID が重複しないように変更してください。
また、 name 属性も重複した名前を使わない場面では、変更する必要があるかもしれません。
異なる文書にノードを複製する場合は、代わりに Document.importNode() を使用してください。
構文
js
cloneNode()
cloneNode(deep)
引数
返値
複製された Node を返します。
複製されたノードには、文書に所属する他のノードに Node.appendChild() などを使用して追加されるまで、親ノードがなく、文書にも所属していません。
例
js
let p = document.getElementById("para1");
let p_prime = p.cloneNode(true);
仕様書
| 仕様書 |
|---|
| DOM> # ref-for-dom-node-clonenode①> |