我正在尝试在 javascript 中查找节点的绝对路径。
基本上用户选择了一些文本,我很好地处理了它的父节点,我试图找到它的绝对路径,所以我可以稍后在 xpath 中使用它来再次定位选定的文本:
您可以在此处找到我正在谈论的示例(在 php 中):
也通过绝对路径,我的意思是:“/html/body/div[1]/div[1]/div[2]/span[2]”
这是我到目前为止所拥有的:
if (window.getSelection){
t = window.getSelection();
if (t.rangeCount > 0) {
parent = t.getRangeAt(0).startContainer.parentNode
}
} else if (document.selection) {
t = document.selection.createRange().text;
range = document.selection.createRange();
range.collapse(isStart);
parent = document.selection.createRange().parentElement();
}
if (t != '' && parent!='') {
// here i would like to get the path
}
我试图解决这个问题,似乎我设法让标签父/子顺序正确但是当我计算兄弟姐妹时出现了一些问题,它给了我完全的废话,或者我错过了一些东西。
到目前为止,这是我想出的:
function absolutePath(node) {
var tages = new Array();
var index = new Array();
var c = 0;
do {
var k=1, e=node;
while (e = e.previousSibling) {
k++;
}
index[c] = k;
tages[c] = node.nodeName;
c++;
}while(node = node.parentElement)
//alert(tages + '\n' + index);
return path;
}
任何输入将不胜感激