Inhaltsverzeichnis
DOM
Knotenebene
Knotentyp
Dokumenttyp
Elementtyp
Texttyp
DocumentFragment-Typ
NodeList Objekt
Elementgröße
Offset-Dimension
Client-Dimension (Client-Dimension)
Scroll-Dimension (Scroll-Dimension)
Bestimmen Die Methode element size
Heim Web-Frontend js-Tutorial Detaillierte Einführung in das DOM-Wissen

Detaillierte Einführung in das DOM-Wissen

Jun 26, 2017 am 11:52 AM
知识

DOM

Wir wissen, dass JavaScript aus ECMAScript + DOM + BOM besteht. ECMAScript ist eine Syntax in JS, und BOM ist hauptsächlich eine Sammlung verwandter Kenntnisse über das Browserobjekt (Fensterobjekt). Das DOM ist eine Wissenssammlung zu Dokumentobjekten.

Wir wissen, dass die Interaktion zwischen HTML und JS durch Ereignisse erreicht wird. Das DOM ist eine API für HTML-Dokumente (XML). Wenn wir also mit dem Benutzer interagieren möchten, müssen wir die vom DOM bereitgestellte API verwenden, um das HTML-Element abzurufen, und dann das entsprechende Ereignis an das Element binden, um mit dem Benutzer zu interagieren. Daher ist es sehr wichtig, DOM zu verstehen und zu beherrschen.

Dieser Artikel basiert hauptsächlich auf den DOM-bezogenen Kapiteln in „JavaScript Advanced Programming (3)“, um das Hauptwissen über DOM zu ordnen und einige meiner persönlichen Kenntnisse einzubringen.

Knotenebene

Jeder, der HTML-Code geschrieben hat, sollte wissen, dass wir jedem Element einen Einzug hinzufügen, dann die relevanten HTML-Tags und Inhalte schreiben und ihn schließlich auf der Webseite anzeigen müssen. Dieser verschachtelte HTML-Code und Inhalt bildet also die Knotenhierarchie.

Jeder, der ECMAScript versteht, sollte wissen, dass jedes Objekt in JS auf der Grundlage eines Referenztyps erstellt wird und der Referenztyp der von JS nativ bereitgestellte Referenztyp sein kann (Array, Funktion, RegExp, Objekt usw.). oder es kann sich um einen benutzerdefinierten Referenztyp handeln (der Referenztyp wird über das Schlüsselwort new aufgerufen (er kann auch als Konstruktor bezeichnet werden)). Alle Objekte sind Instanzobjekte von Object und können die Eigenschaften und Methoden von Object.prototype erben.

Und im DOM gibt es auch einen ähnlichen Mechanismus. Im DOM ist der Typ der obersten Ebene Knotentyp , und alle anderen Knoten können die Eigenschaften und Methoden unter dem Knotentyp erben. Der Node-Typ entspricht tatsächlich dem Object-Konstruktor in JS.

In diesem Fall werfen wir einen Blick auf die Eigenschaften und Methoden unter dem Knotentyp

Knotentyp

  • Attribute (in a bestimmte spezifische Knoten rufen die folgenden Eigenschaften durch Vererbung auf)

    • nodeType

    • nodeName

    • nodeValue

    • ··············

    • childNodes (Zeiger, der auf die NodeList zeigt Objekt)

    • parentNodes

    • nextSibling

    • previousSibling

    • firstChild

    • lastChild

    • ownDocument (jeder Knoten kann nur zu einem Document-Knoten gehören)

  • Methode (rufen Sie die folgende Methode durch Vererbung auf einem bestimmten Knoten auf)

    • ··· Knoten finden·· ·

    • Die Methode zum Suchen von Elementen befindet sich im Dokumenttyp

    • ················ ········

    • ··· Knoten einfügen···

    • appendChild(ele)

    • insertBefore(ele, target)

    • ·······················

    • ··· Knoten löschen···

    • removeChild(ele)

    • ··· ·· ···················

    • ··· Knoten ersetzen···

    • replaceChild(ele, target)

    • ························

    • ··· Knoten kopieren···

    • cloneNode(boolean) true: bedeutet tiefe Kopie, false: bedeutet flache Kopie

    • ························

    • ··· Dokumentknoten verarbeiten··· Selten verwendet ~

    • normalize()

Es gibt nur eine begrenzte Anzahl von Eigenschaften und Methoden für den Node-Typ. Nochmals: alle Sie Andere Knoten können die Eigenschaften und Methoden des Knotentyps erben

Dokumenttyp

JS repräsentiert Dokumente über den Dokumenttyp. Das Dokumentobjekt ist eine Instanz von HTMLDocument und repräsentiert die gesamte HTML-Seite. Gleichzeitig ist das Dokumentobjekt auch eine Eigenschaft unter dem Fensterobjekt, sodass auf es als globales Objekt zugegriffen werden kann.

  • Attribute

    • document.documentElement (stellt das HTML-Element dar), und das HTML-Element kann über document.childNodes[1 abgerufen werden ]

    • document.body (repräsentiert das Körperelement)

    • document.head (repräsentiert das Kopfelement)

    • document.compatMode (gibt an, welche Rendering-Methode der Browser verwendet, „CSS1Compat“ bedeutet Standardmodus, „BackCompat“ bedeutet gemischter Modus)

    • document.charset (gibt den tatsächlichen an Wird im Zeichensatz des Dokuments verwendet und kann auch zum Angeben eines neuen Zeichensatzes verwendet werden 🎜>

    • document.docType (stellt das Element dar), es gibt Probleme mit der Browserkompatibilität

    • document.title (stellt das Element < title > dar)

    • ···Webseitenanforderung···

    • document.URL (URL-Adresse abrufen)

    • document.domain (URL-Domänennamen in abrufen, Pfadname)

    • document.attributes (rufen Sie die Attribute eines Knotens ab und geben Sie ein NamedNodeMap-Objekt zurück, ähnlich wie NodeList)

  • Methode

    • ··· Finden Sie das Element···

    • document.getElementById(id) Geben Sie das Element zurück

    • document.getElementsByTagName(classname) gibt ein HTMLCollection-Objekt zurück, das null oder mehr Elemente enthält, ähnlich einem NodeList-Objekt

    • document.getElementsByName(ele) gibt ein Element mit einem bestimmten Namensattribut zurück, Gibt außerdem das HTMLCollection-Objekt zurück

    • document.getElementsByClassName(className) gibt alle passenden NodeList-Objekte zurück (Diese Methode kann für Dokumenttyp und Elementtyp aufgerufen werden)

    • document.querySelector(selector)-Selektor bedeutet, dass der CSS-Selektor das erste Element zurückgibt, das dem Muster entspricht. Wenn es nicht gefunden wird, wird null zurückgegeben (Dokumenttyp, DocumentFragment-Typ, Elementtyp sind alle Sie kann diese Methode aufrufen )

    • document.querySelectorAll(selector) Selector zeigt an, dass der CSS-Selektor ein erfolgreich passendes NodeList-Objekt zurückgibt (Dokumenttyp, DocumentFragment-Typ, Elementtyp Diese Methode kann aufgerufen werden )

    • ··· Elemente erstellen···

    • document.createElement() (erstellt Das Element befindet sich in einem freien Zustand und muss über appendChild eingefügt werden)

    • ··· Textknoten erstellen···

    • document.createTextNode( ) (Gute Elemente erstellen sind in einem freien Zustand und müssen über appendChild eingefügt werden)

    • ··· Bestimmen Sie die Elementgröße···

    • document.getBoundingClientRect()

Elementtyp

  • Attribute

    • id

    • title

    • lang

    • className

  • Methode

    • getAttribute(ele) Holen Sie sich ein Attribut

    • setAttribute(name, value) Legen Sie ein fest attribute

    • removeAttribute(ele) entfernt ein Attribut

    • getElementsByTagName(ele) ruft das Element mit dem Tag-Namen ele

    • ab

Texttyp

  • Attribute

    • nodeValue data (Zugriff auf den Text im Textknoten). )

DocumentFragment-Typ

Zweck: Offline-Betrieb von DOM-Elementen, um eine massive Neuanordnung und Neuzeichnung von DOM-Knoten zu vermeiden, was zu Leistungsproblemen führt

  • Methode

    • document.createDocumentFragment() (zeigt das Erstellen eines Dokumentfragments an)

NodeList Objekt

NodeList und seine „nahen Verwandten“ NamedNodeMap und HTMLCollection zu verstehen, ist der Schlüssel zu einem gründlichen Verständnis des DOM als Ganzes. Alle drei Sammlungen sind „dynamisch“, d. h. sie werden jedes Mal aktualisiert, wenn sich die Dokumentstruktur ändert. Daher verfügen sie immer über die neuesten und genauesten Informationen. Im Wesentlichen handelt es sich bei allen NodeList-Objekten um Abfragen, die in Echtzeit ausgeführt werden, während auf das DOM-Dokument zugegriffen wird.

Elementgröße

Offset-Dimension

Um den Offset eines Elements auf der Seite zu ermitteln, vergleichen Sie offsetLeft und offsetTop des Elements mit seinem offsetParent, indem Sie dieselben Attribute hinzufügen und eine Schleife ausführen Dadurch kann bis zum Wurzelelement ein grundsätzlich genauer Wert ermittelt werden. Die folgenden zwei Funktionen können verwendet werden, um den linken bzw. oberen Versatz des Elements zu ermitteln.

function getElementLeft(element){
 var actualLeft = element.offsetLeft;
 var current = element.offsetParent;
 while (current !== null){
 actualLeft += current.offsetLeft;
 current = current.offsetParent;
 }
 return actualLeft;
}

function getElementTop(element){
 var actualTop = element.offsetTop;
 var current = element.offsetParent;
 while (current !== null){
 actualTop += current. offsetTop;
 current = current.offsetParent;
 }
 return actualTop;
}
Nach dem Login kopieren

Client-Dimension (Client-Dimension)

Um die Browser-Ansichtsfenstergröße zu bestimmen, können Sie clientWidth und document.documentElement oder document.body (in Versionen vor IE7) clientHeight verwenden.

function getViewport(){
 if (document.compatMode == "BackCompat"){
 return {
 width: document.body.clientWidth,
 height: document.body.clientHeight
 };
 } else {
 return {
 width: document.documentElement.clientWidth,
 height: document.documentElement.clientHeight
 };
 }
}
Nach dem Login kopieren

Scroll-Dimension (Scroll-Dimension)

······················

Bestimmen Die Methode element size

document.getBoundingClientRect() gibt ein rechteckiges Objekt zurück. Enthält 4 Attribute: links, oben, rechts und unten. Diese Eigenschaften geben die Position des Elements auf der Seite relativ zum Ansichtsfenster an.

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in das DOM-Wissen. 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

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

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)

Erfahren Sie mehr über das schockierende Win10x-Systemwissen Erfahren Sie mehr über das schockierende Win10x-Systemwissen Jul 14, 2023 am 11:29 AM

Kürzlich ist der neueste Image-Download des Win10X-Systems im Internet durchgesickert. Anders als die übliche ISO liegt dieses Image im .ffu-Format vor und kann derzeit nur für das Surface Pro7-Erlebnis verwendet werden. Obwohl viele Freunde es nicht erleben können, können Sie dennoch den relevanten Inhalt der Bewertung lesen und Spaß haben. Werfen wir also einen Blick auf die neueste Bewertung des Win10x-Systems. Die neueste Bewertung des Win10x-Systems 1. Der größte Unterschied zwischen Win10X und Win10 erscheinen erstmals nach dem Hochfahren in der Mitte der Taskleiste. Zusätzlich zu angehefteten Anwendungen können in der Taskleiste auch kürzlich gestartete Anwendungen angezeigt werden, ähnlich wie bei Android- und iOS-Telefonen. 2. Eine weitere Sache ist, dass das „Start“-Menü des neuen Systems keine Datei unterstützt

Lassen Sie uns über Wissensextraktion sprechen. Haben Sie es gelernt? Lassen Sie uns über Wissensextraktion sprechen. Haben Sie es gelernt? Nov 13, 2023 pm 08:13 PM

1. Einleitung Unter Wissensextraktion versteht man in der Regel die Gewinnung strukturierter Informationen aus unstrukturiertem Text, beispielsweise Tags und Phrasen, die umfangreiche semantische Informationen enthalten. Dies wird häufig in Szenarien wie dem Inhaltsverständnis und dem Produktverständnis in der Branche verwendet. Durch das Extrahieren wertvoller Tags aus benutzergenerierten Textinformationen wird die Wissensextraktion normalerweise von der Klassifizierung der extrahierten Tags oder Phrasen begleitet . wird normalerweise als Erkennungsaufgabe für benannte Entitäten modelliert. Die allgemeine Erkennungsaufgabe für benannte Entitäten besteht darin, die Komponenten in Ortsnamen, Personennamen, Organisationsnamen usw. zu klassifizieren Taggen Sie Wörter in felddefinierte Kategorien, z. B. Serie (Air Force One, Sonic 9), Marke (Nike, Li Ning), Typ (Schuhe, Kleidung, Digital), Stil (

Golang verstehen: wesentliches Wissen für Entwickler Golang verstehen: wesentliches Wissen für Entwickler Feb 23, 2024 am 10:51 AM

Golang, auch bekannt als Go-Sprache, ist eine von Google entwickelte Open-Source-Programmiersprache. Seit seiner Veröffentlichung im Jahr 2007 hat sich Golang nach und nach im Bereich der Softwareentwicklung etabliert und wird von immer mehr Entwicklern bevorzugt. Als statisch typisierte, kompilierte Sprache bietet Golang viele Vorteile, wie z. B. effiziente Funktionen zur gleichzeitigen Verarbeitung, präzise Syntax und leistungsstarke Toolunterstützung, wodurch es breite Anwendungsaussichten in den Bereichen Cloud Computing, Big Data-Verarbeitung, Netzwerkprogrammierung usw. bietet. In diesem Artikel werden die Grundkonzepte von Golang vorgestellt.

Wie beantwortet ein Chatbot Fragen über einen Wissensgraphen? Wie beantwortet ein Chatbot Fragen über einen Wissensgraphen? Apr 17, 2023 am 09:13 AM

Vorwort Im Jahr 1950 veröffentlichte Turing das bahnbrechende Papier „Computing Machinery and Intelligence“ (Computing Machinery and Intelligence), in dem er ein berühmtes Beurteilungsprinzip über Roboter vorschlug – den Turing-Test, auch bekannt als Turing-Urteil, der besagt, dass wenn der erste Wenn die drei Wenn wir den Unterschied zwischen den Reaktionen von Menschen und KI-Maschinen nicht unterscheiden können, kann daraus geschlossen werden, dass die Maschine über künstliche Intelligenz verfügt. Im Jahr 2008 ließ der KI-Butler Jarvis in Marvels „Iron Man“ die Menschen wissen, wie KI Menschen (Tony) präzise dabei helfen kann, verschiedene Probleme zu lösen, die ihnen gestellt werden ... Abbildung 1: KI-Butler Jarvis (Bildquelle: Internet) Zu Beginn Im Jahr 2023 wurde Chat populär, ein kostenloser Chat-Roboter, der im 2C-Stil in der Technologiewelt Einzug hielt.

Grundlegendes zur Linux-Serversicherheit: Grundlegende Kenntnisse und Fähigkeiten Grundlegendes zur Linux-Serversicherheit: Grundlegende Kenntnisse und Fähigkeiten Sep 09, 2023 pm 02:55 PM

Verständnis der Sicherheit von Linux-Servern: Grundlegende Kenntnisse und Fähigkeiten Mit der kontinuierlichen Entwicklung des Internets werden Linux-Server zunehmend in verschiedenen Bereichen eingesetzt. Da Server jedoch eine große Menge sensibler Daten speichern, geraten auch deren Sicherheitsaspekte in den Fokus der Aufmerksamkeit. In diesem Artikel werden einige grundlegende Kenntnisse und Fähigkeiten zur Linux-Serversicherheit vorgestellt, die Ihnen helfen, Ihren Server vor Angriffen zu schützen. Aktualisieren und Warten von Betriebssystemen und Software Die rechtzeitige Aktualisierung von Betriebssystemen und Software ist ein wichtiger Bestandteil der Sicherheit Ihres Servers. Denn jedes Betriebssystem und jede Software

Erfahren Sie mehr über jQuery-Geschwisterknoten Erfahren Sie mehr über jQuery-Geschwisterknoten Feb 27, 2024 pm 06:51 PM

Es besteht kein Zweifel, dass jQuery eine der am häufigsten verwendeten JavaScript-Bibliotheken in der Front-End-Entwicklung ist und eine prägnante und leistungsstarke Möglichkeit zur Bearbeitung von HTML-Dokumenten bietet. In jQuery sind Geschwisterknoten Elemente, die dasselbe übergeordnete Element wie das angegebene Element haben. Ein tiefes Verständnis der jQuery-Geschwisterknoten ist für Front-End-Entwickler von entscheidender Bedeutung. In diesem Artikel wird erläutert, wie Sie mit jQuery Geschwisterknoten betreiben, und es werden spezifische Codebeispiele angehängt. 1. Um Geschwisterknoten in jQuery zu finden, können wir übergeben

Beherrschen Sie die Schlüsselkenntnisse und praktischen Fähigkeiten globaler HTML-Attribute Beherrschen Sie die Schlüsselkenntnisse und praktischen Fähigkeiten globaler HTML-Attribute Jan 06, 2024 am 08:40 AM

Grundlegende Kenntnisse und praktische Fähigkeiten zum Erlernen der globalen Attribute von HTML HTML (HyperTextMarkupLanguage) ist eine Auszeichnungssprache, die zum Erstellen der Struktur von Webseiten verwendet wird. Beim Erstellen von Webseiten müssen wir häufig verschiedene Tags und Attribute verwenden, um das Erscheinungsbild und Verhalten der Seite zu definieren. Unter allen HTML-Attributen sind globale Attribute ein sehr wichtiger Attributtyp. Sie können auf alle HTML-Tags angewendet werden und bieten Webentwicklern leistungsstarke Flexibilität und Anpassungsmöglichkeiten. HTML lernen und verwenden

Kenntnisse über integrierte JSP-Objekte, die Sie unbedingt erlernen müssen: Verstehen Sie, welche integrierten Objekte in JSP häufig verwendet werden Kenntnisse über integrierte JSP-Objekte, die Sie unbedingt erlernen müssen: Verstehen Sie, welche integrierten Objekte in JSP häufig verwendet werden Jan 10, 2024 pm 04:39 PM

Notwendige Kenntnisse zum Erlernen der integrierten Objekte von JSP: Um die integrierten Objekte in JSP zu beherrschen, benötigen Sie spezifische Codebeispiele. JSP (JavaServerPages) ist eine dynamische Webseitenentwicklungstechnologie. Ihr Vorteil besteht darin, dass sie dynamische Programmiersprachen kombiniert ​​​(wie Java) und statische Seiten. In JSP spielen integrierte Objekte eine wichtige Rolle, um Entwicklern die Datenverarbeitung und das Rendern von Seiten zu erleichtern. In diesem Artikel werden einige häufig verwendete integrierte JSP-Objekte vorgestellt und spezifische Codebeispiele bereitgestellt, um das Verständnis zu vertiefen. Anforderungspaar

See all articles