Heim > Web-Frontend > CSS-Tutorial > Wie generiert man in JavaScript genauere CSS-Pfade aus DOM-Elementen?

Wie generiert man in JavaScript genauere CSS-Pfade aus DOM-Elementen?

Mary-Kate Olsen
Freigeben: 2024-10-25 15:09:02
Original
948 Leute haben es durchsucht

How to Generate More Accurate CSS Paths from DOM Elements in JavaScript?

Genaue CSS-Pfade aus DOM-Elementen erstellen

In JavaScript ist das Erstellen von CSS-Pfaden aus DOM-Elementen eine häufige Aufgabe. Um dieses Problem zu beheben, gibt es eine beliebte Funktion, cssPath. Es entstehen jedoch häufig Pfade, denen wichtige Details fehlen, wie z. B. Selektoren für das n-te Kind.

Der bereitgestellte Code bietet eine Lösung:

<code class="js">var cssPath = function(el) {
  if (!(el instanceof Element)) return;
  var path = [];
  while (el.nodeType === Node.ELEMENT_NODE) {
    var selector = el.nodeName.toLowerCase();
    if (el.id) {
      selector += '#' + el.id;
      path.unshift(selector);
      break;
    } else {
      var sib = el, nth = 1;
      while (sib = sib.previousElementSibling) {
        if (sib.nodeName.toLowerCase() == selector)
          nth++;
      }
      if (nth != 1)
        selector += ":nth-of-type(" + nth + ")";
    }
    path.unshift(selector);
    el = el.parentNode;
  }
  return path.join(" > ");
};</code>
Nach dem Login kopieren

Verbesserungen gegenüber der Originalfunktion:

  • Vermeidet vorzeitige Beendigungen: Die ursprüngliche Funktion wurde angehalten, als sie auf Nicht-Element-Knoten traf, was zu falschen Pfaden führte. Die verbesserte Version setzt die Durchquerung fort, um die Genauigkeit zu verbessern.
  • Betont Klarheit: Durch die Verwendung von nth-of-type()-Selektoren anstelle des generischen :nth-child() werden die generierten Pfade präziser und für Menschen lesbar.
  • Stoppt bei Vorfahrenelementen mit IDs: Die verbesserte Funktion stoppt, wenn sie auf das erste Vorfahrenelement mit einer zugewiesenen ID trifft, wodurch der Pfad rationalisiert und seine Lesbarkeit verbessert wird.

Das obige ist der detaillierte Inhalt vonWie generiert man in JavaScript genauere CSS-Pfade aus DOM-Elementen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage