DOM
Manipulera element
Sök…
Kloningselement
Ett element kan klonas genom att cloneNode på den. Om den första parametern som skickas till cloneNode är true , cloneNode barnen från originalet.
var original = document.getElementsByTagName("li")[0];
var clone = original.cloneNode(true);
Lägga till ett element
I det här exemplet skapar vi ett nytt listelement med texten "ny text" och väljer den första oordnade listan och dess första listaelement.
let newElement = document.createElement("li");
newElement.innerHTML = "new text";
let parentElement = document.querySelector("ul");
let nextSibling = parentElement.querySelector("li");
När vi sätter in ett element gör vi det under överordnade element, och strax före ett visst underordnad element i det överordnade elementet.
parentElement.insertBefore(newElement, nextSibling);
Det nya elementet infogas under
parentElementoch strax förenextSibling.
När man vill infoga ett element som det sista parentElement i parentElement kan det andra argumentet vara null .
parentElement.insertBefore(newElement, null);
Det nya elementet infogas under
parentElementsom det sista barnet.
Istället kan appendChild() användas för att helt enkelt lägga till barnet till föräldernodens barn.
parentElement.appendChild(newElement);
Det nya elementet infogas under
parentElementsom det sista barnet.
Byta ut ett element
I det här exemplet skapar vi ett nytt listelement med texten "ny text" och väljer den första oordnade listan och dess första listaelement.
let newElement = document.createElement("li");
newElement.innerHTML = "new text";
let parentElement = document.querySelector("ul");
let nextSibling = parentElement.querySelector("li");
För att ersätta ett element använder vi replaceChild :
parentElement.replaceChild(newElement, nextSibling);
nextSiblingtas bort från DOM. I stället är nunewElement.
Ta bort ett element
Ett element kan tas bort genom att ringa remove() på det. Alternativt kan man ringa removeChild() på sin förälder. removeChild() har bättre webbläsarsupport än remove() .
element.remove();
elementoch alla dess underordnare tas bort från DOM.
parentElement.removeChild(element);
elementoch alla dess underordnare tas bort från DOM.
I alla fall kan man infoga denna nod i DOM vid en senare tidpunkt så länge det fortfarande finns referenser till denna nod.
Lägg till och förbered metoder
JavaScript har nu Append och Prepend-metoderna som fanns i jQuery
Den största fördelen med att append och prepend är till skillnad från appendChild och insertBefore , det kan ta valfritt antal argument antingen HTML-element eller ren text (som kommer att konverteras till textnoder).
För att lägga till säg 1 div, 1 textnod och 1 span
document.body.append(document.createElement('div'),"Hello world",document.createElement('span'))
Detta kommer att ändra sidan till följande struktur
<body>
.....(other elements)
<div></div>
"Hello World"
<span></span>
</body>
Att bero detsamma i kroppen
Använda sig av
document.body.prepend(document.createElement('div'),"Hello world",document.createElement('span'))
Detta kommer att ändra sidan till följande struktur
<body>
<div></div>
"Hello World"
<span></span>
.....(other elements)
</body>
Observera att webbläsarstöd är
Chrome 54+
Firefox 49+
Opera 39+
Läs mer på MDN