


Praktische Anwendungsfälle für die engste () -Methode von JavaScript ()
Müde von JavaScripts übergeordneten Knoten -Traversal -Herausforderungen? Das richtige Vorfahrelement zu finden, kann schwierig sein, insbesondere mit tief verschachtelten oder dynamischen HTML -Strukturen. Lassen Sie uns untersuchen, wie die methode closest()
diesen Prozess vereinfacht.
Betrachten Sie diesen HTML -Snippet:
<div data-id="123"> Klicken Sie auf mich </div>
Das Erhalten des data-id
nach einer Schaltfläche Klick ist einfach mit parentNode
:
const button = document.querySelector ("button"); Button.AdDeVentListener ("Click", (evt) => { console.log (evt.target.parentnode.dataset.id); // Drucke "123" });
Dieser Ansatz schlägt jedoch mit komplexeren Verschachtelung fehl:
<div data-id="123"> <div> <h1 id="Ein-gewisser-Titel">Ein gewisser Titel</h1> <button>Klicken Sie auf mich</button> </div> </div>
Das mehrmalige Anketten parentNode
ist umständlich und unbetentbar. Ältere Lösungen while
der Schleifen:
Funktion getParentnode (el, tagname) { while (el && el.parentnode) { el = el.Parentnode; if (el && el.tagname === tagname.touppercase ()) { return el; } } null zurückkehren; }
Dies ist zwar funktionsfähig, ist jedoch unflexibel und handelt keine Selektoren über Tagennamen hinaus. JQuery's .closest()
bot eine überlegene Lösung, aber das Hinzufügen einer Bibliothek für eine einzelne Funktion ist häufig übertrieben.
Element.closest()
eingeben
Das native Element.closest()
-Methode liefert eine elegante Lösung:
const button = document.querySelector ("button"); console.log (button.closest ("div")); // gibt die zurück<div> Element<p> <code>closest()</code> durchquert den DOM nach oben, bis es einen Vorfahren findet, der dem bereitgestellten Selektor entspricht. Dieser Selektor kann ein gültiger CSS -Selektor sein: ID, Klasse, Attribut oder Tag -Name.</p> <pre class="brush:php;toolbar:false"> element.closest ("#my-id"); // funktioniert element.closest (". My-Class"); // funktioniert element.closest ("[data-id]"); // funktioniert
Wenn kein passender Vorfahr gefunden wird, kehrt closest()
null
zurück. Dies erleichtert die bedingten Überprüfungen:
const button = document.querySelector ("button"); if (button.closest (". My-Class")) { console.log ("Found!"); } anders { console.log ("Nicht gefunden!"); }
Anwendungen in der Praxis
- Dropdowns: Klicks außerhalb eines Dropdown -Menüs erkennen, um es zu schließen:
// ... (Ereignisbearbeitungscode) ... if (! evt.target.closest (". Menü-Dropdown")) { // Schließen Sie die Dropdown }
- Tabellen: Datenattribute von Tabellenzeilen abrufen, wenn Sie mit Schaltflächen innerhalb dieser Zeilen interagieren:
Funktion getUserid (Ziel) { return target.closest ("[data-userID]"). Dataset.userId; }
- React -Tabellen: Ähnlich wie oben, jedoch innerhalb einer React -Komponente:
Funktion Handleclick (evt) { const userID = evt.currentTarget.closest ("[data-Userid]"). Dataset.userId; // ... }
- Modale: Modale schließen, wenn Sie außerhalb des modalen Inhalts klicken:
// ... (Ereignisbearbeitungscode) ... if (! evt.target.closest (". Modal-Inner")) { // das Modal schließen }
Browserunterstützung
Element.closest()
genießt einen hervorragenden Browser -Support, ausgenommen ältere Versionen von Internet Explorer. Dies macht es für die meisten Projekte zu einer sicheren und zuverlässigen Wahl.
Element.closest()
bietet eine prägnante und effiziente Möglichkeit, die DOM -Hierarchie zu navigieren und die Notwendigkeit komplexer Schleifen oder externen Bibliotheken in vielen gemeinsamen Szenarien zu beseitigen. Die Vielseitigkeit und der breite Browser -Support machen es zu einem wertvollen Instrument für jeden JavaScript -Entwickler.
Das obige ist der detaillierte Inhalt vonPraktische Anwendungsfälle für die engste () -Methode von JavaScript (). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Wenn Sie kürzlich mit GraphQL gearbeitet oder seine Vor- und Nachteile überprüft haben, haben Sie zweifellos Dinge wie "GraphQL nicht unterstützen Caching" oder gehört

Die Sufelte Transition -API bietet eine Möglichkeit, Komponenten zu beleben, wenn sie das Dokument eingeben oder verlassen, einschließlich benutzerdefinierter Svelte -Übergänge.

Wie viel Zeit damit, die Inhaltspräsentation für Ihre Websites zu entwerfen? Wenn Sie einen neuen Blog -Beitrag schreiben oder eine neue Seite erstellen, denken Sie darüber nach

Mit dem jüngsten Aufstieg von Bitcoins Preis über 20.000 USD und kürzlich von 30.000, dachte ich, es lohnt

NPM-Befehle führen verschiedene Aufgaben für Sie aus, entweder als einmalige oder als kontinuierlich ausgeführter Vorgang für Dinge wie das Starten eines Servers oder das Kompilieren von Code.

In dem Artikel werden CSS für Texteffekte wie Schatten und Gradienten verwendet, diese für die Leistung optimiert und die Benutzererfahrung verbessert. Es listet auch Ressourcen für Anfänger auf (159 Zeichen)

Unabhängig davon, in welcher Phase Sie als Entwickler Sie befinden, haben die Aufgaben, die wir erledigen - ob groß oder klein - einen enormen Einfluss auf unser persönliches und berufliches Wachstum.

Ich habe mich neulich mit Eric Meyer unterhalten und erinnerte mich an eine Eric Meyer -Geschichte aus meinen prägenden Jahren. Ich habe einen Blog -Beitrag über CSS -Spezifität geschrieben, und
