1

重複の可能性:
javascriptを使用してhtml要素/ノードパスを記録して取得する

javascript でノードの絶対パスを見つけようとしています。

基本的に、ユーザーはいくつかのテキストを選択し、その親ノードを微調整します。その絶対パスを見つけようとしているので、後で xpath で使用して、選択したテキストを再度見つけることができます。

ここで私が話していることの例を(phpで)見つけることができます:

xpath絶対パスを見つける簡単な方法はありますか?

また、絶対パスとは、「/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;
}

どんな入力でも大歓迎です

4

0 に答える 0