Я получил эту функцию, чтобы получить cssPath:Получить путь к CSS от 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]));
Но я получил что-то вроде этого:
html > body > div#div-id > div.site > div.clearfix > ul.choices > li
Но чтобы быть совершенно правильно, он должен выглядеть следующим образом :
html > body > div#div-id > div.site:nth-child(1) > div.clearfix > ul.choices > li:nth-child(5)
У кого-то есть идея реализовать его просто в javascript?
Это, вероятно, следует ': эк (1)' или ': п-й ребенок (2)' вместо '[1 ] ', если вы хотите использовать селектор CSS. –
Или просто введите элемент уникальный идентификатор с JavaScript? Я вижу, почему cssPath может быть полезен как плагин FireBug или что-то в этом роде, но для обычного кода введение идентификаторов является наиболее эффективным. – BGerrissen
На самом деле, я считаю, что есть плагин FireBug, который получает cssPath из элемента FireFinder; oP – BGerrissen