diff options
Diffstat (limited to 'files/pt-pt/web/api/node/clonenode/index.html')
-rw-r--r-- | files/pt-pt/web/api/node/clonenode/index.html | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/files/pt-pt/web/api/node/clonenode/index.html b/files/pt-pt/web/api/node/clonenode/index.html new file mode 100644 index 0000000000..71f0c5064a --- /dev/null +++ b/files/pt-pt/web/api/node/clonenode/index.html @@ -0,0 +1,55 @@ +--- +title: element.cloneNode +slug: DOM/element.cloneNode +translation_of: Web/API/Node/cloneNode +--- +<h3 id="Resumo" name="Resumo">Resumo</h3> + +<p>Retorna a cópia de um elemento.</p> + +<h3 id="Syntax" name="Syntax">Syntax</h3> + +<pre class="eval"><em>dupNode</em> = <em>element</em>.cloneNode(<em>deep</em>); +</pre> + +<ul> + <li><code>dupNode</code> é variável que receberá o nó gerado</li> + <li><code>element</code> é o elemento pai (o elemento que contém o nó que será copiado)</li> + <li><code>deep</code> é um valor boleano, obrigatório que indica de o a clone vai ser completo ou não (ver <a href="#Notas">notas</a>).</li> +</ul> + +<h3 id="Example" name="Example">Example</h3> + +<pre>p = document.getElementById("diogok"); +p_prime = p.cloneNode(true); +</pre> + +<h3 id="Notas" name="Notas">Notas</h3> + +<p>Clonando um nó copiamos todos seus atributos e seus respectivos valores</p> + +<p>O nó clonado retornado por <code>cloneNode</code> não faz parte do documento enquanto não for adicionado a um outro nó que faça parte do documento usando <a href="/pt/DOM/element.appendChild" title="pt/DOM/element.appendChild">appendChild</a> ou outro método similar. Enquanto não for adicionado a um outro nó, será um nó sem pai. Ou seja, o clone não herda o pai do original.</p> + +<p>Se <code>deep</code> for <code>false</code>, nada sobre os nós filhos será clonado. <em>Qualquer texto contido no nó não será clonado junto</em>, já que o texto fica contido em nós de texto.</p> + +<p>Se <code>deep</code> for <code>true</code>, toda a subárvore (incluíndo texto) é copiado também. Para nós vazios (como os elementos IMG e INPUT) não importa qua valor que você coloque em <code>deep</code>, mas você ainda deve definir um valor</p> + +<p>Note que o cloneNode pode causar o problema de termos dois elementos com um mesmo id em um documento!</p> + +<p>Somente os eventos colocados em atributos inline são copiados. Os eventos adicionados após a renderização do nó via javascript não são copiados. <code> </code></p> + +<pre class="eval">var elms = document.getElementById('foo'); +elms.onclick = function(){ + alert('Eu não deveria ser copiado?'); +} +var g = elms.cloneNode(true); +g.id = 'foo2'; +g.style.top = '0px'; +document.body.appendChild(g); +</pre> + +<p>No trecho de código acima o atributo <code>onclick</code> não é copiado. Nem mesmo com <code>addEventListener</code>.</p> + +<h3 id="Especifica.C3.A7.C3.A3o" name="Especifica.C3.A7.C3.A3o">Especificação</h3> + +<p><a class="external" href="http://w3.org/TR/DOM-Level-2-Core/core.html#ID-3A0ED0A4">DOM Level 2 Core: cloneNode</a></p> |