Recuperando caminho CSS do elemento DOM com precisão aprimorada
A função fornecida tenta gerar um caminho CSS para um determinado elemento DOM. Porém, sua saída carece de especificidade, não conseguindo capturar a posição do elemento dentro de seus irmãos. Para resolver isso, precisamos de uma abordagem mais sofisticada.
Função de caminho CSS aprimorada
A função aprimorada apresentada abaixo aborda as limitações originais:
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(" > "); }
Melhorias e benefícios:
Exemplo de uso:
Utilizando esta função aprimorada, agora é possível obter um caminho CSS mais preciso para um determinado elemento:
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)"
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3