Inhaltsverzeichnis
Ein gewisser Titel
Heim Web-Frontend CSS-Tutorial Praktische Anwendungsfälle für die engste () -Methode von JavaScript ()

Praktische Anwendungsfälle für die engste () -Methode von JavaScript ()

Apr 03, 2025 am 09:20 AM

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>
Nach dem Login kopieren

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"
});
Nach dem Login kopieren

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>
Nach dem Login kopieren

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;
}
Nach dem Login kopieren

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
Nach dem Login kopieren

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!");
}
Nach dem Login kopieren

Anwendungen in der Praxis

  1. 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
}
Nach dem Login kopieren
  1. Tabellen: Datenattribute von Tabellenzeilen abrufen, wenn Sie mit Schaltflächen innerhalb dieser Zeilen interagieren:
 Funktion getUserid (Ziel) {
  return target.closest ("[data-userID]"). Dataset.userId;
}
Nach dem Login kopieren
  1. React -Tabellen: Ähnlich wie oben, jedoch innerhalb einer React -Komponente:
 Funktion Handleclick (evt) {
  const userID = evt.currentTarget.closest ("[data-Userid]"). Dataset.userId;
  // ...
}
Nach dem Login kopieren
  1. Modale: Modale schließen, wenn Sie außerhalb des modalen Inhalts klicken:
 // ... (Ereignisbearbeitungscode) ...
if (! evt.target.closest (". Modal-Inner")) {
  // das Modal schließen
}
Nach dem Login kopieren

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!

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
3 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)

Arbeiten mit GraphQL Caching Arbeiten mit GraphQL Caching Mar 19, 2025 am 09:36 AM

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

Machen Sie Ihren ersten Seltsamen -Sufle -Übergang Machen Sie Ihren ersten Seltsamen -Sufle -Übergang Mar 15, 2025 am 11:08 AM

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

Show, Don ' Tell Show, Don ' Tell Mar 16, 2025 am 11:49 AM

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

Aufbau einer Ethereum -App mit Redwood.js und Fauna Aufbau einer Ethereum -App mit Redwood.js und Fauna Mar 28, 2025 am 09:18 AM

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

Was zum Teufel haben NPM -Befehle? Was zum Teufel haben NPM -Befehle? Mar 15, 2025 am 11:36 AM

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.

Wie verwenden Sie CSS, um Texteffekte wie Textschatten und Gradienten zu erstellen? Wie verwenden Sie CSS, um Texteffekte wie Textschatten und Gradienten zu erstellen? Mar 14, 2025 am 11:10 AM

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)

Erstellen Sie Ihr eigenes Bragdoc mit ELEITY Erstellen Sie Ihr eigenes Bragdoc mit ELEITY Mar 18, 2025 am 11:23 AM

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.

Verwenden wir (x, x, x, x), um über Spezifität zu sprechen Verwenden wir (x, x, x, x), um über Spezifität zu sprechen Mar 24, 2025 am 10:37 AM

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

See all articles