DOM
Manipulowanie elementami
Szukaj…
Klonowanie elementów
Element można sklonować, wywołując na cloneNode
metodę cloneNode
. Jeśli pierwszy parametr przekazany do cloneNode
jest true
, elementy potomne oryginału również zostaną sklonowane.
var original = document.getElementsByTagName("li")[0];
var clone = original.cloneNode(true);
Dodawanie elementu
W tym przykładzie tworzymy nowy element listy z tekstem „nowy tekst” i wybieramy pierwszą nieuporządkowaną listę oraz jej pierwszy element listy.
let newElement = document.createElement("li");
newElement.innerHTML = "new text";
let parentElement = document.querySelector("ul");
let nextSibling = parentElement.querySelector("li");
Wstawiając element, robimy to pod elementem nadrzędnym i tuż przed określonym elementem podrzędnym tego elementu nadrzędnego.
parentElement.insertBefore(newElement, nextSibling);
Nowy element jest wstawiany w
parentElement
i tuż przednextSibling
.
Gdy chcemy wstawić element jako ostatni element potomny elementu parentElement
, drugi argument może mieć null
.
parentElement.insertBefore(newElement, null);
Nowy element jest wstawiany pod
parentElement
jako ostatnie dziecko.
Zamiast tego można użyć appendChild()
aby po prostu dołączyć dziecko do dzieci węzła nadrzędnego.
parentElement.appendChild(newElement);
Nowy element jest wstawiany pod
parentElement
jako ostatnie dziecko.
Zastąpienie elementu
W tym przykładzie tworzymy nowy element listy z tekstem „nowy tekst” i wybieramy pierwszą nieuporządkowaną listę oraz jej pierwszy element listy.
let newElement = document.createElement("li");
newElement.innerHTML = "new text";
let parentElement = document.querySelector("ul");
let nextSibling = parentElement.querySelector("li");
Aby zamienić element, używamy replaceChild
:
parentElement.replaceChild(newElement, nextSibling);
nextSibling
jest usuwany z DOM. Na jego miejscu jest teraznewElement
.
Usuwanie elementu
Element można usunąć, wywołując na nim funkcję remove()
. Alternatywnie można wywołać removeChild()
na removeChild()
nadrzędnym. removeChild()
ma lepszą obsługę przeglądarki niż remove()
.
element.remove();
element
i wszystkie jego childnodes są usuwane z DOM.
parentElement.removeChild(element);
element
i wszystkie jego childnodes są usuwane z DOM.
W każdym razie można wstawić ten węzeł do DOM w późniejszym czasie, o ile nadal istnieją odniesienia do tego węzła.
Metody dołączania i dodawania
JavaScript ma teraz metody Append i Prepend, które były obecne w jQuery
Główną zaletą append
i prepend
jest to, w przeciwieństwie do appendChild
i insertBefore
, może przyjmować dowolną liczbę argumentów, zarówno element HTML, jak i zwykły tekst (które zostaną przekonwertowane na węzły tekstowe).
Aby dołączyć powiedzmy 1 div, 1 węzeł tekstowy i 1 rozpiętość
document.body.append(document.createElement('div'),"Hello world",document.createElement('span'))
Spowoduje to zmianę strony na następującą strukturę
<body>
.....(other elements)
<div></div>
"Hello World"
<span></span>
</body>
Aby dodać to samo w ciele
Posługiwać się
document.body.prepend(document.createElement('div'),"Hello world",document.createElement('span'))
Spowoduje to zmianę strony na następującą strukturę
<body>
<div></div>
"Hello World"
<span></span>
.....(other elements)
</body>
Pamiętaj, że obsługiwane są przeglądarki
Chrome 54+
Firefox 49+
Opera 39+
Czytaj więcej na MDN