Création de chemins CSS précis à partir d'éléments DOM
En JavaScript, la construction de chemins CSS à partir d'éléments DOM est une tâche courante. Pour résoudre ce problème, il existe une fonction populaire, cssPath. Cependant, il produit souvent des chemins qui manquent de détails importants, tels que les sélecteurs de nième enfant.
Le code fourni offre une solution :
<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>
Améliorations par rapport à la fonction d'origine :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!