現時点では、次のコードを使用して、選択した要素へのパスを取得しています
if (!(el instanceof Element)) return;
var path = [];
while (el.nodeType === Node.ELEMENT_NODE) {
var selector = el.nodeName.toLowerCase();
if (el.id) {
selector += '#' + el.id;
} else {
var sib = el, nth = 1;
while (sib.nodeType === Node.ELEMENT_NODE && (sib = sib.previousSibling) && nth++);
selector += ":nth-child("+nth+")";
}
path.unshift(selector);
el = el.parentNode;
}
return path.join(" > ");
完全なhtmlページのコンテキストで正しいパスを返します。ただし、この関数をページ全体ではなく、html ページの小さな領域のコンテキストで機能させたいと考えています。この関数を機能させるにはどうすればよいでしょうか? div#id 内で言ってみましょう。