Metoda cloneNode

Metoda cloneNode pozwala sklonować element i uzyskać jego dokładną kopię. Tę kopię można następnie wstawić na stronę za pomocą metod prepend, append, appendChild, insertBefore lub insertAdjacentElement.

W parametrze metoda otrzymuje true albo false. Jeśli przekazano true, element jest klonowany całkowicie, wraz ze wszystkimi atrybutami i elementami potomnymi, a jeśli false - tylko sam element (bez elementów potomnych).

Składnia

javascriptelement.cloneNode(true lub false);

Przykład

Stwórzmy kopię bloku z klasą elem i wstawmy go na koniec bloku #parent:

html<div id="parent">
  <div class="elem">
    <p>text1</p>
    <p>text2</p>
  </div>
</div>
javascriptlet parent = document.getElementById('parent');
let elem = parent.querySelector('.elem');

let clone = elem.cloneNode(true);
parent.appendChild(clone);

Wynik wykonania kodu:

html<div id="parent">
  <div class="elem">
    <p>text1</p>
    <p>text2</p>
  </div>
  <div class="elem">
    <p>text1</p>
    <p>text2</p>
  </div>
</div>

Przykład

Z uzyskanym klonem można pracować jak ze zwykłym elementem:

html<div id="parent">
  <div class="elem">
    <p>text1</p>
    <p>text2</p>
  </div>
</div>
javascriptlet parent = document.getElementById('parent');
let elem = parent.querySelector('.elem');

let clone = elem.cloneNode(true);
clone.children[0].textContent = 'nowy text1';
clone.children[1].textContent = 'nowy text2';

parent.appendChild(clone);

Wynik wykonania kodu:

html<div id="parent">
  <div class="elem">
    <p>text1</p>
    <p>text2</p>
  </div>
  <div class="elem">
    <p>nowy text1</p>
    <p>nowy text2</p>
  </div>
</div>

Zobacz też

  • metoda createElement,
    za pomocą której można utworzyć nowy element