.cloneNode()

このメソッドを呼んだノードの複製を返します。

文法

var dupNode = node.cloneNode([deep]);
引数 説明
deep trueにするとノードの子も複製され、falseだと指定されたノードだけの複製になります。
戻り値
dupNode nodeを複製した新しいノードです。

注意:DOM4仕様(Gecko 13.0実装 (Firefox 13.0 / Thunderbird 13.0 / SeaMonkey 2.10))では、deepは任意指定の引数です。 省略されると、true値として処理され、デフォルトの振る舞いは子要素を含めた"深い"複製を行うようになっています。

"浅い"複製を作成するには、deepにfalseを指定しなければいけません。 この振る舞いは最近の使用で変更され、省略されるとメソッドはdeep引数の値はfalseであるとして実行します。 ただし、依然として任意項目であるため、前方と後方の両方の互換性を保つために、 常にdeep引数を提供する必要があります。

Gecko 28.0(Firefox 28 / Thunderbird 28 / SeaMonkey 2.25)では、 コンソール上で開発者に対し引数を省略しないように警告します。 Gecko 29.0(Firefox 29 / Thunderbird 29 / SeaMonkey 2.26)からは、 深い複製に代わり、浅い複製がデフォルトになりました。

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

注意事項

複製されたノードは、本来備わっているリスナーを含め、複製元の属性や値の全てをコピーします。 addEventListener()、または要素プロパティに割り当てられた(例:node.onclick = fn)イベントリスナーは コピーしません。

cloneNode()によって返される複製されたノードは、appendChild()や類似するメソッドによって documentの一部である他のノードに追加されるまでは、documentの一部ではありません。

もし、deepにfalseが設定されると、子ノードは複製されません。 ノードに含まれるテキストは、1つでも複数でも子テキストノードはいずれも複製されません。

deepをtrueにすると、全サブツリー(テキストなどの、その子テキストノードも含む)もコピーされます。 空ノード(例: <img>、<input>)は、deepがtrueでもfalseでも関係ありません。

警告: cloneNode()は、document内の要素idを複製する可能性があります。

もし、元のノードがidを持ち複製が同じdocument内に配置されるのであれば、 複製されたidは一意の値に修正すべきです。 複製された名前を期待されているかどうかで、名前属性も変更した方が良いかもしれません。

複製したノードを異なるdocumentに追加したい場合は、 .importNode()を代わりに使用します。

ブラウザ互換性

デスクトップ
機能 Chrome Firefox
(Gecko)
IE Opera Safari
基本
任意引数
deep

(デフォルトはfalse)
13.0 (13.0) ? ?
(デフォルトはfalse)
モバイル
機能 Android Chrome for
Android
Firefox
Mobile
IE
Mobile
Opera
Mobile
Safari
Mobile
基本
任意引数
deep
? ? 13.0 (13.0) ? ? ?

仕様

 Back to top

© 2017 Mozilla Contributors
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.

このページは、ページトップのURL先のMozilla Developer Network(以下、MDN)のコンテンツを翻訳した内容を基に構成されています。 構成について異なる点も含まれますので、下記の項目を確認し、必要に応じて元のコンテンツをご確認ください。 もし、誤訳などの間違いを見つけましたら、 @tomofまで教えていただければ幸いです。

  • 特定のブラウザに特化しすぎている情報やあまりにも古い情報、 または試験的に導入されているようなAPIや機能については、省略していることがあります。
  • 例やデモについて、実際にページ内で動作させる関係で一部ソースコードを変更している場合や、 その例で使用しているコンテンツの単語や文章などを日本人向けに変更しいてる場合があります。
  • MDNの更新頻度が高いため、元のコンテンツと比べ情報が古くなっている可能性があります。
  • "訳注:"などの断わりを入れた上で、日本人向けの情報の追記を行っている事があります。