aboutsummaryrefslogtreecommitdiff
path: root/files/ja
diff options
context:
space:
mode:
authorMasahiro FUJIMOTO <mfujimot@gmail.com>2022-02-27 15:00:03 +0900
committerMasahiro FUJIMOTO <mfujimot@gmail.com>2022-03-06 14:10:33 +0900
commit478de33ac5a748d403c77bed813546f57e53c05e (patch)
tree51c77dd552c755d630ab58a6e21ee501e34e458e /files/ja
parent1649dce744ae7836e6de49971f365cc8e2bbd8f6 (diff)
downloadtranslated-content-478de33ac5a748d403c77bed813546f57e53c05e.tar.gz
translated-content-478de33ac5a748d403c77bed813546f57e53c05e.tar.bz2
translated-content-478de33ac5a748d403c77bed813546f57e53c05e.zip
2021/11/08 時点の英語版に同期
Diffstat (limited to 'files/ja')
-rw-r--r--files/ja/web/api/node/clonenode/index.md75
1 files changed, 37 insertions, 38 deletions
diff --git a/files/ja/web/api/node/clonenode/index.md b/files/ja/web/api/node/clonenode/index.md
index db00fc7a61..ff734aa6c0 100644
--- a/files/ja/web/api/node/clonenode/index.md
+++ b/files/ja/web/api/node/clonenode/index.md
@@ -1,62 +1,61 @@
---
title: Node.cloneNode()
slug: Web/API/Node/cloneNode
+tags:
+ - メソッド
+ - リファレンス
+browser-compat: api.Node.cloneNode
translation_of: Web/API/Node/cloneNode
---
-<div>{{ApiRef}}</div>
+{{APIRef("DOM")}}
-<h2 id="Summary" name="Summary">概要</h2>
+**`cloneNode()`** は {{domxref("Node")}} インターフェイスのメソッドで、このメソッドが呼び出されたノードの複製を返します。
+引数でノードに含まれるサブツリーを一緒に複製するかどうかを制御できます。
-<p>現在のノードの複製を返します。</p>
+ノードを複製すると、固有(インライン)のリスナーを含む、ノードのすべての属性とその値が複製されます。 [`addEventListener()`](/ja/docs/Web/API/EventTarget/addEventListener) を使って追加されたイベントリスナーや、要素のプロパティに代入されたイベントリスナー(例: `node.onclick = someFunction`)は複製されません。さらに、 {{HTMLElement("canvas")}} 要素では、描画された画像は複製されません。
-<h2 id="Syntax" name="Syntax">構文</h2>
+> **Warning:** `cloneNode()` を使用すると、文書内で要素の ID が重複する可能性があります。
+>
+> 元のノードに `id` 属性があり、複製を同じ文書に配置する場合は、複製の ID が重複しないように変更してください。
+>
+> また、 `name` 属性も重複した名前を使わない場面では、変更する必要があるかもしれません。
-<pre class="syntaxbox">var <var>dupNode</var> = <var>node</var>.cloneNode(<var>deep</var>);
-</pre>
+**異なる**文書にノードを複製する場合は、代わりに {{domxref("Document.importNode()")}} を使用してください。
-<dl>
- <dt><code>node</code></dt>
- <dd>複製するノード</dd>
- <dt><code>dupNode</code></dt>
- <dd>新しく生成される <code>node</code> の複製</dd>
- <dt><code>deep</code> {{optional_inline}}</dt>
- <dd><code>node</code> の子孫ノードも複製する場合は <code>true</code> 、 <code>node</code> のみを複製する場合は <code>false</code>
- <div class="note">
- <p><strong>注記:</strong> DOM4 の仕様では (Gecko 13.0 {{geckoRelease("13.0")}} で実装) 、 <code>deep</code> は省略可能な引数です。省略された場合、 <code>deep</code> には <code>true</code> が渡され、深い複製を生成します。浅い複製を生成するには、 <code>deep</code> を <code>false</code> にする必要があります。</p>
+## 構文
- <p>以前のDOMの仕様を実装しているブラウザでは、 <code>deep</code> は必須の引数です。</p>
- </div>
- </dd>
-</dl>
+```js
+cloneNode();
+cloneNode(deep);
+```
-<h2 id="Example" name="Example">例</h2>
+### 引数
-<pre class="brush:js">var p = document.getElementById("para1");
-var p_prime = p.cloneNode(true);
-</pre>
+- `deep` {{optional_inline}}
-<h2 id="Notes" name="Notes">注記</h2>
+ - : `true` の場合、ノードとそのサブツリーは、子ノードの {{domxref("Text")}} にあるテキストも含め複製されます。
-<p id="not-event-listeners">ノードを複製すると、そのノードのすべての属性とその値がコピーされます。つまり、HTML属性のイベントを含みます。<a href="/ja/docs/DOM/element.addEventListener" title="DOM/element.addEventListener"><code>addEventListener()</code></a> を使用したものや、要素のプロパティに代入されたもの (例: <code>node.onclick = fn;</code>) は複製されません。</p>
+ `false` の場合、このノードのみが複製されます。
+ サブツリーは、そのノードに含まれているテキストも含め、複製されません。
-<p><code><strong>cloneNode</strong></code> によって返される複製ノードは、 {{domxref("Node.appendChild()")}} や同種のメソッドによってドキュメントの一部である他のノードに追加されるまでは、ドキュメントの一部ではありません。また、他のノードに追加されるまでは、親ノードを持ちません。</p>
+ なお、 `deep` は {{HTMLElement("img")}} や {{HTMLElement("input")}} のような空要素には効果がありません。
-<p><code><strong>deep</strong></code> が <code>false</code> に設定されていると、どの子ノードも複製されません。 そのため、そのノードに含まれる {{domxref("Text")}} ノードも複製されません。</p>
+### 返値
-<p><code><strong>deep</strong></code> が <code>true</code> に評価できる場合、サブツリー全体 (子 {{domxref("Text")}} ノードにあるテキストを含む) もコピーされます。 {{HTMLElement("img")}} や {{HTMLElement("input")}} 要素などの空ノードの場合には <code>deep</code> を true と false のどちらに設定してもかまいません。</p>
+複製された {{domxref("Node")}} を返します。
+複製されたノードには、文書に所属する他のノードに {{domxref("Node.appendChild()")}} などを使用して追加されるまで、親ノードがなく、文書にも所属していません。
-<div class="warning"><strong>注意:</strong> <code>cloneNode()</code> を使用すると、ドキュメント内で要素の id が重複する可能性があります。</div>
+## 例
-<p>別のドキュメントに追加するためにノードを複製する場合は、代わりに {{domxref("Document.importNode()")}} を使用してください。</p>
+```js
+let p = document.getElementById("para1")
+let p_prime = p.cloneNode(true)
+```
-<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザ実装状況</h2>
+## 仕様書
-<p>{{Compat("api.Node.cloneNode")}}</p>
+{{Specifications}}
-<h2 id="Specification" name="Specification">仕様書</h2>
+## ブラウザーの互換性
-<ul>
- <li>{{Spec("http://w3.org/TR/DOM-Level-2-Core/core.html#ID-3A0ED0A4","DOM Level 2 Core: cloneNode","REC")}}</li>
- <li>{{Spec("http://w3.org/TR/DOM-Level-3-Core/core.html#ID-3A0ED0A4","DOM Level 3 Core: cloneNode","REC")}}</li>
- <li><a href="http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#dom-node-clonenode">DOM4: cloneNode</a> (草案)</li>
-</ul>
+{{Compat}}