Selektoren sind eine sehr leistungsstarke Funktion von Später erweiterte DOM den 1. querySelector fragt ein einzelnes Element ab Das Syntaxformat ist wie folgt: Dokumentinstanz.querySelector (Selektorzeichenfolge); Elementinstanz.querySelector (Selektorzeichenfolge); 1. Dokumentinstanzaufruf Ein einfaches Beispiel sieht wie folgt aus: // Holen Sie das Body-Element let body = document.querySelector("body"); console.log(Text) // Holen Sie das Element mit der ID „Container“, nur das erste wird abgerufen. let container = document.querySelector("#container"); konsole.log(Container) // Holen Sie das Element, das btn in der Klasse enthält. Nur das erste wird abgerufen. let btn = document.querySelector(".btn"); konsole.log(btn); // Holen Sie das Element, das btn enthält, in der direkten Unterklasse des Containers. Nur das erste wird abgerufen. let containerBtn = document.querySelector("#container>.btn"); console.log(containerBtn); 2. Aufruf einer Elementinstanz Einfaches Beispiel: // Holen Sie sich das Element mit der ID „Container“. let container = document.querySelector("#container"); // Es muss geprüft werden, ob das Elementobjekt existiert. Nur wenn es existiert, gibt es eine querySelector-Methode if (container) { // Finde nur Elemente im Container, deren Klasse btn enthält. let containerBtn = container.querySelector(".btn"); console.log(containerBtn); } Da CSS über den Selektor jedes Element auf der Seite abrufen kann, kann Beispielsweise kann das obige Beispiel direkt wie folgt geschrieben werden: let containerBtn = document.querySelector("#container .btn"); Und da es ein if-Urteil weniger gibt, ist der Code prägnanter. Natürlich wurde in einigen Geschäftsszenarien die 2. querySelectorAll fragt alle Elemente ab Die Methode Einfaches Beispiel: // Angenommen, die Seite hat zwei Div-Klassen, die Artikel enthalten // Alle Elemente abrufen, deren Klasse den Artikel enthält. let articleList = document.querySelectorAll(".article"); console.log(Artikelliste); console.log(Artikelliste.Länge); // Konsolenausgabe: // Knotenliste(2) [div.Artikel, div.Artikel] // 2 Die Methode // für die Durchquerung für (let item of articleList) { konsole.log(Element); } // für die Durchquerung for (let i = 0; i < articleList.length; i++) { console.log(Artikelliste[i]); console.log(Artikelliste.Element(i)); } // forEach durchläuft articleList.forEach((item, index) => { Konsole.log(Element, Index); }); 1. Probleme mit for bei der Durchquerung Wenn „for 2. Das Problem von Schnappschüssen statt Echtzeit Die mit Betrachten Sie das folgende Beispiel: //Verwenden Sie querySelectorAll zum Abrufen. ArticleList ist statisch und nicht in Echtzeit. let articleList = document.querySelectorAll(".article"); console.log(Artikelliste); console.log(Artikelliste.Länge); // 2 setzeTimeout(() => { // Ein Element hinzufügen let div = document.createElement("div"); div.className = "Artikel"; Dokument.body.appendChild(div); console.log(Artikelliste); // Noch 2 console.log(Artikelliste.Länge); }, 0); Schließlich wird ein Timer eingestellt und ein Wenn Betrachten Sie das folgende Beispiel: //Verwenden Sie getElementsByClassName zum Abrufen. ArticleList ist in Echtzeit. Let articleList = document.getElementsByClassName("article"); console.log(Artikelliste); console.log(Artikelliste.Länge); setzeTimeout(() => { // Ein Element hinzufügen let div = document.createElement("div"); div.className = "Artikel"; Dokument.body.appendChild(div); console.log(Artikelliste); // Hier ist 3 console.log(Artikelliste.Länge); }, 0); Zeigen Sie die Druckergebnisse in der Konsole an: Dynamische Effekte der HTMLCollection: Das durch die Verwendung von 3. Zusammenfassung
Dies ist das Ende dieses Artikels über Das könnte Sie auch interessieren:
|
>>: Beispielcode für die Verwendung von HTML-Tags „ul“ und „li“ zur Anzeige von Bildern
Hintergrund Im Projekt besteht die Anforderung, a...
Inhaltsverzeichnis Vorwort 1. Was ist Skalierbark...
<br />Sehen wir uns nun an, wie Sie die CSS-...
React tsx generiert einen zufälligen Bestätigungs...
Nach dem Start initialisiert der Worker-Prozess z...
Wie wird ein Textüberlauf angezeigt? Was sind Ihr...
Ich bin sehr glücklich. Wenn ich auf dieses Probl...
Dieses Axios-Paket wird in der Vue3-Demo verwende...
Die Definition und Vererbung von Klassen in JS si...
MySQL selbst wurde auf Basis des Dateisystems ent...
Vor kurzem habe ich vor, eine Cloud-Festplatte au...
Auf manchen Websites sieht man oft Bilder, die ko...
Trident-Kern: IE, MaxThon, TT, The World, 360, So...
Electron installieren cnpm installiere Electron -...
Inhaltsverzeichnis 1. Code-Analyse 2. Quellcode Q...