aboutsummaryrefslogtreecommitdiff
path: root/files/ja/web/api/node/clonenode/index.md
diff options
context:
space:
mode:
Diffstat (limited to 'files/ja/web/api/node/clonenode/index.md')
-rw-r--r--files/ja/web/api/node/clonenode/index.md61
1 files changed, 61 insertions, 0 deletions
diff --git a/files/ja/web/api/node/clonenode/index.md b/files/ja/web/api/node/clonenode/index.md
new file mode 100644
index 0000000000..ff734aa6c0
--- /dev/null
+++ b/files/ja/web/api/node/clonenode/index.md
@@ -0,0 +1,61 @@
+---
+title: Node.cloneNode()
+slug: Web/API/Node/cloneNode
+tags:
+ - メソッド
+ - リファレンス
+browser-compat: api.Node.cloneNode
+translation_of: Web/API/Node/cloneNode
+---
+{{APIRef("DOM")}}
+
+**`cloneNode()`** は {{domxref("Node")}} インターフェイスのメソッドで、このメソッドが呼び出されたノードの複製を返します。
+引数でノードに含まれるサブツリーを一緒に複製するかどうかを制御できます。
+
+ノードを複製すると、固有(インライン)のリスナーを含む、ノードのすべての属性とその値が複製されます。 [`addEventListener()`](/ja/docs/Web/API/EventTarget/addEventListener) を使って追加されたイベントリスナーや、要素のプロパティに代入されたイベントリスナー(例: `node.onclick = someFunction`)は複製されません。さらに、 {{HTMLElement("canvas")}} 要素では、描画された画像は複製されません。
+
+> **Warning:** `cloneNode()` を使用すると、文書内で要素の ID が重複する可能性があります。
+>
+> 元のノードに `id` 属性があり、複製を同じ文書に配置する場合は、複製の ID が重複しないように変更してください。
+>
+> また、 `name` 属性も重複した名前を使わない場面では、変更する必要があるかもしれません。
+
+**異なる**文書にノードを複製する場合は、代わりに {{domxref("Document.importNode()")}} を使用してください。
+
+## 構文
+
+```js
+cloneNode();
+cloneNode(deep);
+```
+
+### 引数
+
+- `deep` {{optional_inline}}
+
+ - : `true` の場合、ノードとそのサブツリーは、子ノードの {{domxref("Text")}} にあるテキストも含め複製されます。
+
+ `false` の場合、このノードのみが複製されます。
+ サブツリーは、そのノードに含まれているテキストも含め、複製されません。
+
+ なお、 `deep` は {{HTMLElement("img")}} や {{HTMLElement("input")}} のような空要素には効果がありません。
+
+### 返値
+
+複製された {{domxref("Node")}} を返します。
+複製されたノードには、文書に所属する他のノードに {{domxref("Node.appendChild()")}} などを使用して追加されるまで、親ノードがなく、文書にも所属していません。
+
+## 例
+
+```js
+let p = document.getElementById("para1")
+let p_prime = p.cloneNode(true)
+```
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}