CSS-Pfad aus DOM-Element mit erhöhter Präzision abrufen
Die bereitgestellte Funktion versucht, einen CSS-Pfad für ein bestimmtes DOM-Element zu generieren. Seiner Ausgabe mangelt es jedoch an Spezifität, da sie die Position des Elements innerhalb seiner Geschwister nicht erfassen kann. Um dieses Problem anzugehen, benötigen wir einen ausgefeilteren Ansatz.
Verbesserte CSS-Pfadfunktion
Die unten dargestellte erweiterte Funktion behebt die ursprünglichen Einschränkungen:
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(" > "); }
Verbesserungen und Vorteile:
Beispielverwendung:
Mit dieser verbesserten Funktion kann man jetzt einen genaueren CSS-Pfad für ein bestimmtes Element erhalten:
console.log(cssPath(document.getElementsByTagName('a')[123])); // Output: "html > body > div#div-id > div.site:nth-child(1) > div.clearfix > ul.choices > li:nth-child(5)"
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3