15 JavaScript-Methoden für die DOM-Manipulation für Webentwickler
Als Webentwickler müssen Sie häufig die DOM, das Objektmodell, das von Browsern verwendet wird Geben Sie die logische Struktur an von Webseiten, und basierend auf dieser Struktur zu HTML-Elemente auf dem Bildschirm darstellen.
HTML definiert das Standard-DOM-Struktur. In vielen Fällen möchten Sie dies jedoch mit JavaScript manipulieren, normalerweise um dies zu tun fügen Sie zusätzliche Funktionen hinzu zu einer Website.
In diesem Beitrag finden Sie eine Liste von 15 grundlegende JavaScript-Methoden Das Hilfe bei der DOM-Manipulation. Sie würden diese Methoden wahrscheinlich häufig in Ihrem Code verwenden, und Sie werden in unseren JavaScript-Tutorials auch darauf eingehen.
1. querySelector ()
Das querySelector ()
Methode gibt das erste Element zurück, das mit einem oder mehreren CSS-Selektoren übereinstimmt. Wenn keine Übereinstimmung gefunden wird, wird es zurückgegeben Null
.
Vor querySelector ()
wurde eingeführt, die Entwickler weit verbreitet getElementById ()
Methode welche holt ein Element mit einem angegebenen Ich würde
Wert.
Obwohl getElementById ()
ist immer noch eine nützliche Methode, aber mit der neueren querySelector ()
und querySelectorAll ()
Methoden, zu denen wir frei sind Zielelemente basierend auf einem beliebigen CSS-Selektor, So haben wir mehr Flexibilität.
Syntax
var ele = document.querySelector (Selektor);
ele
- Erstes passendes Element oderNull
(wenn kein Element mit den Selektoren übereinstimmt)Wähler
- einen oder mehrere CSS-Selektoren, wie z"#fooId"
,".fooClassName"
,".class1.class2"
, oder".class1, .class2"
Code-Beispiel
In diesem Beispiel der erste Absatz eins Absatz zwei Absatz drei Testen Sie die nicht wie Die übereinstimmenden Elemente werden als zurückgegeben Im folgenden Beispiel wird derselbe HTML-Code wie im vorherigen verwendet. In diesem Beispiel werden jedoch alle Absätze mit ausgewählt Absatz eins Absatz zwei Absatz drei Veranstaltungen Verweisen Sie auf das, was mit einem HTML-Element geschieht, z. B. Klicken, Fokussieren oder Laden, auf das wir mit JavaScript reagieren können. Wir können JS-Funktionen zuweisen Hör mal zu für diese Ereignisse in Elementen und etwas tun, wenn das Ereignis stattgefunden hatte. Es gibt drei Möglichkeiten Weisen Sie einem bestimmten Ereignis eine Funktion zu. Ob Die Methode Stoppt das Blubbern von Ereignissen, d. H. Verhindert den Aufruf von Ereignis-Listenern für denselben Ereignistyp in den Vorfahren des Elements. Um diese Funktion zu verwenden, können Sie zwei Syntax verwenden: Listener wird nur beim ersten Auftreten des Ereignisses aufgerufen, dann wird es automatisch vom Ereignis getrennt und wird nicht mehr durch das Ereignis ausgelöst. Die Standardaktion des Ereignisses kann nicht mit der Methode compareDefault () beendet werden. In diesem Beispiel fügen wir einen Klickereignislistener hinzu Weisen Sie das zu Das Verwendet dieselbe Syntax wie zuvor Dem Code-Beispiel folgend haben wir verwendet Das Sie können dieses Element später mit anderen Elementen zur Webseite hinzufügen Methoden zum Einfügen von DOM, sowie Mit dem folgenden Beispiel können Sie ein neues Absatzelement erstellen: Das Das einzufügende Kind kann entweder ein neu erstelltes Element, oder ein bereits vorhandenes. Im letzteren Fall wird es von seiner vorherigen Position zur Position des letzten Kindes verschoben. In diesem Beispiel fügen wir ein In der folgenden interaktiven Demo Briefe von Schauen Sie sich an, wie die Das In diesem Beispiel entfernen wir die Das In diesem Beispiel das untergeordnete Element Wenn Sie ein neues Element erstellen müssen, müssen Sie das wie ein bereits vorhandenes Element auf der Webseite kannst du das einfach Erstellen Sie eine Kopie des bereits vorhandenen Elements Verwendung der In diesem Beispiel erstellen wir eine Kopie für die Als Ergebnis, Das Wenn das referenzierte untergeordnete Element nicht vorhanden ist oder Sie explizit übergeben werden In diesem Beispiel erstellen wir ein neues Diese interaktive Demo funktioniert ähnlich wie unsere vorherige Demo des Das Es schafft ein Warum fügen wir nicht einfach Elemente direkt in den DOM-Baum ein? Weil DOM-Einfügung verursacht Layoutänderungen, und es ist ein teurer Browser-Prozess da mehrere konsequente Elementeinfügungen zu mehr Layoutänderungen führen. Auf der anderen Seite, Hinzufügen von Elementen zu einem In diesem Beispiel erstellen wir mehrere Tabellenzeilen und -zellen mit der Daher werden fünf Zeilen, die jeweils eine Zelle mit einer Zahl von 1 bis 5 als Inhalt enthalten, in die Tabelle eingefügt. Manchmal willst du es Überprüfen Sie die CSS-Eigenschaftswerte eines Elements, bevor Sie Änderungen vornehmen. Du kannst den ... benutzen In diesem Beispiel erhalten und alarmieren wir das berechnete Das In diesem Beispiel fügen wir die Das In diesem Beispiel warnen wir den Wert von Das In diesem Beispiel entfernen wir die querySelector ()
Methode und ihre Farbe wird in rot geändert.
var firstDiv = document.querySelector ('div'); firstDiv.style.color = 'rot';
Interaktive Demo
querySelector ()
Methode in der folgenden interaktiven Demo. Geben Sie einfach eine Auswahl ein, die denjenigen entspricht, die Sie in den blauen Kästchen finden (z. #drei
) und klicken Sie auf die Schaltfläche Auswählen. Beachten Sie dies, wenn Sie eingeben .Block
, nur seine erste Instanz wird ausgewählt.2.
querySelectorAll ()
querySelector ()
das gibt nur die erste Instanz aller übereinstimmenden Elemente zurück, querySelectorAll ()
gibt alle Elemente zurück, die der angegebenen CSS-Auswahl entsprechen.NodeList
Objekt, das ein leeres Objekt ist, wenn keine übereinstimmenden Elemente gefunden werden.Syntax
var eles = document.querySelectorAll (Selektor);
eles
- EIN NodeList
Objekt mit allen übereinstimmenden Elementen als Eigenschaftswerte. Das Objekt ist leer, wenn keine Übereinstimmungen gefunden werden.Wähler
- einen oder mehrere CSS-Selektoren, wie z "#fooId"
, ".fooClassName"
, ".class1.class2"
, oder ".class1, .class2"
Code-Beispiel
querySelectorAll ()
, und sind blau gefärbt.
var Absätze = document.querySelectorAll ('p'); für (var p von Absätzen) p.style.color = 'blue';
3.
addEventListener ()
foo ()
ist eine benutzerdefinierte Funktion, die Sie registrieren können als Klickereignis-Listener (nennen Sie es, wenn das Schaltflächenelement angeklickt wird) auf drei Arten:
var btn = document.querySelector ('button'); btn.onclick = foo;
var btn = document.querySelector ('button'); btn.addEventListener ('click', foo);
addEventListener ()
(die dritte Lösung) hat einige Profis; Dies ist der neueste Standard, der die Zuweisung von mehr als einer Funktion als Ereignis-Listener zu einem Ereignis ermöglicht, und bietet eine Reihe nützlicher Optionen.Syntax
ele.addEventListener (evt, Listener, [Optionen]);
ele
- Das HTML-Element, auf das der Ereignis-Listener wartet.evt
- Die gezielte Veranstaltung.Hörer
- Normalerweise eine JavaScript-Funktion.Optionen
- (optional) Ein Objekt mit einem Satz boolescher Eigenschaften (unten aufgeführt).Optionen Was passiert, wenn es eingestellt ist? wahr
?Erfassung
ele.addEventListener (evt, Listener, true)
ele.addEventListener (evt, Listener, capture: true);
Einmal
passiv
Code-Beispiel
foo
, zum HTML-Tag.
var btn = document.querySelector ('button'); btn.addEventListener ('click', foo); function foo () alert ('hallo');
Interaktive Demo
foo ()
Benutzerdefinierte Funktion als Ereignis-Listener für eines der drei folgenden Ereignisse: Eingang
, klicken
oder Mouseover
& Auslösen des ausgewählten Ereignisses im unteren Eingabefeld durch Schweben, Klicken oder Eingeben.4.
removeEventListener ()
removeEventListener ()
Methode entfernt einen Ereignis-Listener zuvor mit der addEventListener ()
Methode von dem Ereignis, auf das es wartet.Syntax
ele.removeEventListener (evt, Listener, [Optionen]);
addEventListener ()
Methode (außer für die Einmal
Option ist ausgeschlossen). Die Optionen werden verwendet, um den zu entfernenden Listener sehr genau zu identifizieren.Code-Beispiel
addEventListener ()
, Hier entfernen wir den Click-Event-Listener foo
von dem Element.
btn.removeEventListener ('click', foo);
5.
createElement ()
createElement ()
Methode erstellt ein neues HTML-Element Verwendung der Name des HTML-Tags erstellt werden, wie z 'p'
oder 'div'
.AppendChild ()
(siehe später in diesem Beitrag).Syntax
document.createElement (TagName);
Verlinke den Namen
- Der Name des HTML-Tags, das Sie erstellen möchten. Code-Beispiel
var pEle = document.createElement ('p')
6.
appendChild ()
appendChild ()
Methode fügt ein Element als letztes Kind hinzu auf das HTML-Element, das diese Methode aufruft.Syntax
ele.appendChild (childEle)
ele
- Das HTML-Element, zu dem childEle
wird als letztes Kind hinzugefügt.childEle
- Das HTML-Element, das als letztes untergeordnetes Element von hinzugefügt wurde ele
.Code-Beispiel
Element ist wie ein Kind von a
appendChild ()
und die zuvor genannten createElement ()
Methoden.
var div = document.querySelector ('div'); var strong = document.createElement ('strong'); strong.textContent = 'Hallo'; div.appendChild (stark);
Interaktive Demo
#ein
zu #r
sind die untergeordneten Elemente des # Elternteil
, # Elternteil zwei
, und # Elternteil-drei
ID-Selektoren.appendChild ()
Methode arbeitet von Geben Sie einen übergeordneten und einen untergeordneten Selektornamen in die Eingabefelder unten ein. Sie können auch Kinder auswählen, die zu einem anderen Elternteil gehören.7.
removeChild ()
removeChild ()
Methode Entfernt ein angegebenes untergeordnetes Element aus dem HTML-Element, das diese Methode aufruft.Syntax
ele.removeChild (childEle)
ele
- Das übergeordnete Element von childEle
.KindEle
- Das untergeordnete Element von ele
.Code-Beispiel
Element, das wir als Kind hinzugefügt haben
appendChild ()
Methode. div.removeChild (stark);
8.
replaceChild ()
replaceChild ()
Methode ersetzt ein untergeordnetes Element durch ein anderes gehört zu dem übergeordneten Element, das diese Methode aufruft.Syntax
ele.replaceChild (newChildEle, oldChileEle)
ele
- Elternelement, dessen Kinder ersetzt werden sollen.newChildEle
- Kindelement von ele
das wird ersetzen oldChildEle
.oldChildEle
- Kindelement von ele
, das wird ersetzt durch newChildEle
.Code-Beispiel
gehört zu
Etikett.
var em = document.createElement ('em'); var strong = document.querySelector ('strong'); var div = document.querySelector ('div'); em.textContent = 'hi'; div.replaceChild (em, strong);
9.
cloneNode ()
cloneNode ()
Methode.Syntax
var dupeEle = ele.cloneNode ([tief])
dupeEle
- Kopie der ele
Element.ele
- Das zu kopierende HTML-Element.tief
- (optional) Ein boolescher Wert. Wenn es eingestellt ist wahr
, dupeEle
wird alle untergeordneten Elemente haben ele
hat, wenn es eingestellt ist falsch
es wird ohne seine Kinder geklont.Code-Beispiel
Element mit
cloneNode ()
, dann fügen wir es dem hinzu appendChild ()
Methode. Elemente, beide mit der
Hallo
String als Inhalt.
var strong = document.querySelector ('strong'); var copy = strong.cloneNode (true); var div = document.querySelector ('div'); div.appendChild (Kopie);
10.
insertBefore ()
insertBefore ()
Methode fügt ein angegebenes untergeordnetes Element vor einem anderen untergeordneten Element hinzu. Die Methode wird vom übergeordneten Element aufgerufen.Null
Stattdessen wird das einzufügende untergeordnete Element hinzugefügt als letztes Kind des Elternteils (ähnlich zu appendChild ()
).Syntax
ele.insertBefore (newEle, refEle);
ele
- Übergeordnetes Element.newEle
- Neues HTML-Element, das eingefügt werden soll.refEle
- Ein untergeordnetes Element von ele
vor dem newEle
wird eingefügt.Code-Beispiel
Element mit etwas Text darin, und fügen Sie es hinzu Vor das
Element innerhalb der
var em = document.createElement ('em'); var strong = document.querySelector ('strong'); var div = document.querySelector ('div'); em.textContent = 'hi'; div.insertBefore (em, strong);
Interaktive Demo
appendChild ()
Methode. Hier müssen Sie nur die ID-Selektoren von zwei untergeordneten Elementen (von) eingeben #ein
zu #r
) in die Eingabefelder, und Sie können sehen, wie die insertBefore ()
Methode verschiebt das erste angegebene Kind Vor der Zweite.11.
createDocumentFragment ()
createDocumentFragment ()
Die Methode ist möglicherweise nicht so bekannt wie die anderen in dieser Liste, ist jedoch eine wichtige Methode, insbesondere wenn Sie möchten Fügen Sie mehrere Elemente in großen Mengen ein, So können Sie einer Tabelle mehrere Zeilen hinzufügen.DocumentFragment
Objekt, was im Wesentlichen ist ein DOM-Knoten, der nicht Teil der DOM-Baumstruktur ist. Es ist wie ein Puffer, in dem andere Elemente (z. B. mehrere Zeilen) zuerst hinzugefügt und gespeichert werden können, bevor sie dem gewünschten Knoten in der DOM-Struktur (z. B. in einer Tabelle) hinzugefügt werden..DocumentFragment
Objekt verursacht keine Layoutänderungen, Sie können so viele Elemente hinzufügen, wie Sie möchten, bevor Sie sie an die DOM-Struktur übergeben. Dadurch wird nur an dieser Stelle eine Layoutänderung vorgenommen.Syntax
document.createDocumentFragment ()
Code-Beispiel
createElement ()
Methode, dann fügen Sie sie zu einem DocumentFragment
Objekt, fügen Sie schließlich dieses Dokumentfragment einem HTML-Code hinzu Verwendung der
appendChild ()
Methode.
var table = document.querySelector ("Tabelle"); var df = document.createDocumentFragment (); für (var i = 0; i<5; i++) var td = document.createElement("td"); var tr = document.createElement("tr"); td.textContent = i; tr.appendChild(td) df.appendChild(tr); table.appendChild(df);
12.
getComputedStyle ()
ele.style
Eigenschaft, das gleiche zu tun, jedoch die getComputedStyle ()
Methode wurde nur für diesen Zweck gemacht gibt die schreibgeschützten berechneten Werte zurück aller CSS-Eigenschaften eines angegebenen HTML-Elements.Syntax
var style = getComputedStyle (ele, [pseudoEle])
Stil
- EIN CSSStyleDeclaration
Objekt, das von der Methode zurückgegeben wird. Es enthält alle CSS-Eigenschaften und ihre Werte von ele
Element.ele
- Das HTML-Element, dessen CSS-Eigenschaftswerte abgerufen werden.PseudoEle
- (optional) Eine Zeichenfolge, die ein Pseudoelement darstellt (z. B., ':nach dem'
). Wenn dies erwähnt wird, werden die CSS-Eigenschaften des angegebenen Pseudoelements zugeordnet ele
Wird zurückgegeben.Code-Beispiel
Breite
Wert von a getComputedStyle ()
Methode.
var style = getComputedStyle (document.querySelector ('div')); alert (style.width);
13.
setAttribute ()
setAttribute ()
Methode entweder fügt ein neues Attribut hinzu zu einem HTML-Element oder aktualisiert den Wert eines bereits vorhandenen Attributs.Syntax
ele.setAttribute (Name, Wert);
ele
- Das HTML-Element, zu dem ein Attribut hinzugefügt wird oder dessen Attribut aktualisiert wird.Name
- Der Name des Attributs.Wert
- Der Wert des Attributs.Code-Beispiel
inhaltlich editierbar
Attribut a setAttribute ()
Methode, wodurch der Inhalt bearbeitet werden kann. var div = document.querySelector ('div'); div.setAttribute ('contenteditable', ")
14.
getAttribute ()
getAttribute ()
Methode gibt den Wert eines angegebenen Attributs zurück zu einem bestimmten HTML-Element gehören.Syntax
ele.getAttribute (Name);
ele
- Das HTML-Element, dessen Attribut angefordert wird.Name
- Der Name des Attributs.Code-Beispiel
inhaltlich editierbar
Attribut, das zu der getAttribute ()
Methode. var div = document.querySelector ('div'); alert (div.getAttribute ('contenteditable'))
fünfzehn.
removeAttribute ()
removeAttribute ()
Methode Entfernt ein bestimmtes Attribut eines bestimmten HTML-Elements.Syntax
ele.removeAttribute (Name);
ele
- Das HTML-Element, dessen Attribut entfernt werden soll.Name
- Der Name des Attributs.Code-Beispiel
inhaltlich editierbar
Attribut aus der var div = document.querySelector ('div'); div.removeAttribute ('contenteditable');