Heim Web-Frontend js-Tutorial Detaillierte Erläuterung der DOM-Operationen in JavaScript

Detaillierte Erläuterung der DOM-Operationen in JavaScript

Aug 13, 2017 am 10:33 AM
javascript js 详解

1. Was ist DOM

JavaScript besteht aus drei Teilen: ECMAScript, DOM und BOM stellt die Methode und Schnittstelle zur Beschreibung von Webinhalten dar ist das Dokumentobjektmodell (Dokumentobjektmodell). Auf einer Webseite sind die Objekte, die die Seite (oder das Dokument) organisieren, in einer Baumstruktur organisiert. Das Standardmodell, das zur Darstellung der Objekte im Dokument verwendet wird, wird DOM genannt, und die Baumstruktur wird oft als DOM-Baum bezeichnet.

Die Einführung von DOM in Wikipedia ist genauer: DOM ist eine plattformübergreifende und sprachunabhängige Anwendungsprogrammierschnittstelle, die aktuelle HTML-, XHTML- oder XML-Dokumente als Baumstruktur verarbeitet, in der jeder Knoten ein Objekt ist , jeder Knoten repräsentiert einen Teil des Dokuments.

2. DOM-Knoten

1. Knotentypen

Der DOM-Baum besteht aus vielen verschiedenen Knotentypen, und diese Knotentypen haben einen nodeType-Wert. Mithilfe des nodeType-Werts können wir bestimmen, ob wir einen Knoten des entsprechenden Typs erhalten oder benötigen.

节点类型 元素节点(标签节点) 属性节点 文本节点(空格、换行、文字) 注释节点 document节点
nodeType值 1 2 3 8 9

Zusätzlich zur Beurteilung des Typs anhand des nodeType-Werts können wir auch die Knotennamen von Elementknoten und Attributknoten über nodeName anzeigen und nadeValue verwenden, um die Attributwerte von Attributknoten anzuzeigen.

2. Holen Sie sich den Elementknoten


document.getElementById(id);
document.getElementByTagName(tagname);
document.getElementByClassName(classname);
Nach dem Login kopieren

Normalerweise Sie Wenn Sie ändern oder Elementknoten in HML in JavaScript verwenden, müssen diese vor dem Aufruf abgerufen werden. Dann erhalten wir sie, indem wir das Id-Attribut oder das Class-Attribut des Elements festlegen oder den Tag-Namen verwenden. Beachten Sie jedoch, dass die Methode getElementById() in XML nicht funktioniert. In XML-Dokumenten müssen Suchen mit dem id-Attribut durchgeführt werden und dieser Typ muss in der XML-DTD deklariert werden.

Nachdem wir den gewünschten Knoten erhalten haben, können wir auch andere Knoten über die Beziehung der Knoten bedienen. Hier nehmen wir als Beispiel das p-Element als anfänglichen Elementknoten.

 2.1 Untergeordnete Knoten


p.children();
p.childNodes();
Nach dem Login kopieren

Rufen Sie die untergeordneten Knoten unter p ab, während p.children() nur die untergeordneten Knoten von Elementknoten abrufen kann, während p.childNodes() alle Arten von untergeordneten Knoten abrufen wird, was bedeutet, dass leere Textknoten analysiert werden.

 2.2 Übergeordneter Knoten


p.parentNode();
p.offsetParent();
Nach dem Login kopieren

Holen Sie sich den übergeordneten Knoten von p.offsetParent() ruft den Vorgängerknoten mit Positionierungsattribut ab, d. h. ausgehend vom übergeordneten Knoten, wenn der übergeordnete Knoten vorhanden ist Es gibt kein Positionierungsattribut. Durchsuchen Sie dann den übergeordneten Knoten des übergeordneten Knotens, bis ein Knoten mit Positionierungsattributen gefunden wird.

 2.3 Geschwisterknoten


//下一个兄弟节点 p.nextElementSibling();
p.nextSibling();//上一个兄弟节点 p.previousElementSibling();
p.previousSibling();
Nach dem Login kopieren

Ob es hier ein Element gibt, ist entscheidend. Genau wie beim Abrufen untergeordneter Knoten analysieren p.nextSibling() und p. previousSibling() leere Knoten und get Geben Sie das Leerzeichen unter p ein oder drücken Sie die Eingabetaste.

 2.4 Kopf- und Schwanz-Kindknoten


//获取p的第一个子节点p.firstElementChild();
p.firstChild();//获取p的最后一个子节点p.lastElementChild();
p.lastElementChild();
Nach dem Login kopieren

Der Unterschied ist der gleiche wie oben.

3. Knotenoperationen

Neben dem Hinzufügen und Löschen von Änderungsknoten in HTML können wir auch Knoten in JavaScript bedienen.

 3.1 Knoten erstellen


//创建节点/创建文本节点createElement();
createTextNode();
Nach dem Login kopieren

Das Erstellen von Textknoten wird im Allgemeinen verwendet, um Inhalt zu Elementknoten hinzuzufügen. Es erstellt statischen Text und kann kein HTML-Format wie innerHTML haben, daher ist innerText sicherer wieder.

 3.2 Knoten hinzufügen

 Der von uns erstellte Knoten wird nicht automatisch zu HTML hinzugefügt, wir müssen den erstellten Knoten bedienen.


//向尾部添加子节点 appendChild(); 
//向目标节点之前添加insertBefore(newElement,targetElement);
Nach dem Login kopieren

Der zweite Parameter von insertBefore() ist ein optionaler Parameter. Wenn Sie den zweiten Parameter nicht schreiben, wird er standardmäßig am Ende hinzugefügt entspricht appendChild() ;

 3.3 Ersetzung


//将旧节点换为新节点replaceChild(newElement,oldElement);
Nach dem Login kopieren

p.replaceChild(newElement,oldElement), unabhängig davon, ob es sich um einen neuen oder einen alten Knoten handelt, muss es ein untergeordneter Knoten von p sein.

 3.4 Löschen


removeChild();
Nach dem Login kopieren

Beachten Sie, dass die untergeordneten Knoten gelöscht werden.

 3.5 Klonen/Kopieren


//深复制或浅复制cloneNode(boolean);
Nach dem Login kopieren

tief, wenn der boolesche Wert des Parameters wahr ist Beim Kopieren werden der Knoten selbst und alle darunter liegenden untergeordneten Knoten kopiert.

Wenn der boolesche Wert des Parameters falsch ist, handelt es sich um eine flache Kopie und nur der Knoten selbst wird kopiert.

 3.6 Bestimmen Sie, ob untergeordnete Knoten vorhanden sind, und geben Sie einen booleschen Wert zurück.

 

3.7 Eigenschaften
hasChildNode();
Nach dem Login kopieren

//获取节点属性getAttribute();//设置节点属性setAttribute();//删除节点属性removeAttribute();
Nach dem Login kopieren

  要注意的一点就是class属性不能通过setAttribute(); 设置。

三、DOM的优缺点

  DOM的优点主要表现在:易用性强,并且遍历简单,支持XPath,增强了易用性。

  DOM的缺点主要表现在:效率低,解析速度慢,内存占用量过高。

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der DOM-Operationen in JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Ausführliche Erklärung zur Erlangung von Administratorrechten in Win11 Ausführliche Erklärung zur Erlangung von Administratorrechten in Win11 Mar 08, 2024 pm 03:06 PM

Das Windows-Betriebssystem ist eines der beliebtesten Betriebssysteme der Welt und seine neue Version Win11 hat viel Aufmerksamkeit erregt. Im Win11-System ist die Erlangung von Administratorrechten ein wichtiger Vorgang. Mit Administratorrechten können Benutzer weitere Vorgänge und Einstellungen auf dem System durchführen. In diesem Artikel wird ausführlich beschrieben, wie Sie Administratorrechte im Win11-System erhalten und wie Sie Berechtigungen effektiv verwalten. Im Win11-System werden Administratorrechte in zwei Typen unterteilt: lokaler Administrator und Domänenadministrator. Ein lokaler Administrator verfügt über vollständige Administratorrechte für den lokalen Computer

Empfohlen: Ausgezeichnetes JS-Open-Source-Projekt zur Gesichtserkennung und -erkennung Empfohlen: Ausgezeichnetes JS-Open-Source-Projekt zur Gesichtserkennung und -erkennung Apr 03, 2024 am 11:55 AM

Die Technologie zur Gesichtserkennung und -erkennung ist bereits eine relativ ausgereifte und weit verbreitete Technologie. Derzeit ist JS die am weitesten verbreitete Internetanwendungssprache. Die Implementierung der Gesichtserkennung und -erkennung im Web-Frontend hat im Vergleich zur Back-End-Gesichtserkennung Vor- und Nachteile. Zu den Vorteilen gehören die Reduzierung der Netzwerkinteraktion und die Echtzeiterkennung, was die Wartezeit des Benutzers erheblich verkürzt und das Benutzererlebnis verbessert. Die Nachteile sind: Es ist durch die Größe des Modells begrenzt und auch die Genauigkeit ist begrenzt. Wie implementiert man mit js die Gesichtserkennung im Web? Um die Gesichtserkennung im Web zu implementieren, müssen Sie mit verwandten Programmiersprachen und -technologien wie JavaScript, HTML, CSS, WebRTC usw. vertraut sein. Gleichzeitig müssen Sie auch relevante Technologien für Computer Vision und künstliche Intelligenz beherrschen. Dies ist aufgrund des Designs der Webseite erwähnenswert

Detaillierte Erläuterung der Divisionsoperation in Oracle SQL Detaillierte Erläuterung der Divisionsoperation in Oracle SQL Mar 10, 2024 am 09:51 AM

Detaillierte Erläuterung der Divisionsoperation in OracleSQL In OracleSQL ist die Divisionsoperation eine häufige und wichtige mathematische Operation, die zur Berechnung des Ergebnisses der Division zweier Zahlen verwendet wird. Division wird häufig in Datenbankabfragen verwendet. Daher ist das Verständnis der Divisionsoperation und ihrer Verwendung in OracleSQL eine der wesentlichen Fähigkeiten für Datenbankentwickler. In diesem Artikel werden die relevanten Kenntnisse über Divisionsoperationen in OracleSQL ausführlich erörtert und spezifische Codebeispiele als Referenz für die Leser bereitgestellt. 1. Divisionsoperation in OracleSQL

Detaillierte Erläuterung der Rolle und Verwendung des PHP-Modulo-Operators Detaillierte Erläuterung der Rolle und Verwendung des PHP-Modulo-Operators Mar 19, 2024 pm 04:33 PM

Der Modulo-Operator (%) in PHP wird verwendet, um den Rest der Division zweier Zahlen zu ermitteln. In diesem Artikel werden wir die Rolle und Verwendung des Modulo-Operators im Detail besprechen und spezifische Codebeispiele bereitstellen, um den Lesern ein besseres Verständnis zu erleichtern. 1. Die Rolle des Modulo-Operators Wenn wir in der Mathematik eine ganze Zahl durch eine andere ganze Zahl dividieren, erhalten wir einen Quotienten und einen Rest. Wenn wir beispielsweise 10 durch 3 dividieren, ist der Quotient 3 und der Rest ist 1. Um diesen Rest zu ermitteln, wird der Modulo-Operator verwendet. 2. Verwendung des Modulo-Operators In PHP verwenden Sie das %-Symbol, um den Modul darzustellen

Detaillierte Erläuterung der Funktion system() des Linux-Systemaufrufs Detaillierte Erläuterung der Funktion system() des Linux-Systemaufrufs Feb 22, 2024 pm 08:21 PM

Detaillierte Erläuterung der Funktion system() des Linux-Systems Der Systemaufruf ist ein sehr wichtiger Teil des Linux-Betriebssystems. Er bietet eine Möglichkeit, mit dem Systemkernel zu interagieren. Unter diesen ist die Funktion system() eine der am häufigsten verwendeten Systemaufruffunktionen. In diesem Artikel wird die Verwendung der Funktion system() ausführlich vorgestellt und entsprechende Codebeispiele bereitgestellt. Grundlegende Konzepte von Systemaufrufen Systemaufrufe sind eine Möglichkeit für Benutzerprogramme, mit dem Betriebssystemkernel zu interagieren. Benutzerprogramme fordern das Betriebssystem an, indem sie Systemaufruffunktionen aufrufen

Detaillierte Erläuterung des Linux-Befehls „curl'. Detaillierte Erläuterung des Linux-Befehls „curl'. Feb 21, 2024 pm 10:33 PM

Detaillierte Erläuterung des Linux-Befehls „curl“ Zusammenfassung: Curl ist ein leistungsstarkes Befehlszeilentool für die Datenkommunikation mit dem Server. In diesem Artikel wird die grundlegende Verwendung des Curl-Befehls vorgestellt und tatsächliche Codebeispiele bereitgestellt, um den Lesern zu helfen, den Befehl besser zu verstehen und anzuwenden. 1. Was ist Locken? Curl ist ein Befehlszeilentool zum Senden und Empfangen verschiedener Netzwerkanfragen. Es unterstützt mehrere Protokolle wie HTTP, FTP, TELNET usw. und bietet umfangreiche Funktionen wie Datei-Upload, Datei-Download, Datenübertragung und Proxy

Die Beziehung zwischen js und vue Die Beziehung zwischen js und vue Mar 11, 2024 pm 05:21 PM

Die Beziehung zwischen js und vue: 1. JS als Eckpfeiler der Webentwicklung; 2. Der Aufstieg von Vue.js als Front-End-Framework; 3. Die komplementäre Beziehung zwischen JS und Vue; Vue.

Erfahren Sie mehr über Promise.resolve() Erfahren Sie mehr über Promise.resolve() Feb 18, 2024 pm 07:13 PM

Eine detaillierte Erklärung von Promise.resolve() erfordert spezifische Codebeispiele. Promise ist ein Mechanismus in JavaScript zur Verarbeitung asynchroner Vorgänge. In der tatsächlichen Entwicklung ist es häufig erforderlich, einige asynchrone Aufgaben zu verarbeiten, die nacheinander ausgeführt werden müssen, und die Methode Promise.resolve () wird verwendet, um ein erfülltes Promise-Objekt zurückzugeben. Promise.resolve() ist eine statische Methode der Promise-Klasse, die a akzeptiert

See all articles