Tengo esta función para obtener una cssPath:Obtener ruta CSS del elemento DOM
var cssPath = function (el) {
var path = [];
while (
(el.nodeName.toLowerCase() != 'html') &&
(el = el.parentNode) &&
path.unshift(el.nodeName.toLowerCase() +
(el.id ? '#' + el.id : '') +
(el.className ? '.' + el.className.replace(/\s+/g, ".") : ''))
);
return path.join(" > ");
}
console.log(cssPath(document.getElementsByTagName('a')[123]));
pero me dio algo como esto:
html > body > div#div-id > div.site > div.clearfix > ul.choices > li
Pero para ser totalmente correcta, debería tener este aspecto :
html > body > div#div-id > div.site:nth-child(1) > div.clearfix > ul.choices > li:nth-child(5)
¿Alguien tuvo alguna idea de implementarlo simplemente en javascript?
Es probablemente debería ser ': eq (1)' o ': nth-child (2)' en lugar de '[1 ] 'si quieres un selector de CSS. –
¿O simplemente le da al elemento una identificación única con JavaScript? Puedo ver por qué cssPath podría ser útil como un complemento de FireBug o algo así, pero para el código regular, la introducción de los ID es la más efectiva. – BGerrissen
De hecho, creo que hay un complemento FireBug que obtiene un cssPath de un elemento llamado FireFinder; oP – BGerrissen