亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用Javascript計算元素的XPath位置?

如何使用Javascript計算元素的XPath位置?

假設我有一個包含不同類型標簽的大型HTML文件,類似于您現在正在查看的StackOverflow?,F在讓我們說你單擊頁面上的一個元素,Javascript函數會是什么樣的,它會計算引用該特定元素的最基本的XPath?我知道在XPath中有一種無限的方式來引用該元素,但我正在尋找一些只關注DOM樹的東西,而不考慮ID,類等。例:<html><head><title>Fruit</title></head><body><ol>  <li>Bananas</li>  <li>Apples</li>  <li>Strawberries</li></ol></body></html>假設您點擊蘋果。Javascript函數將返回以下內容:/html/body/ol/li[2]它基本上只是向上運行DOM樹一直到HTML元素。只是為了澄清,'on-click'事件處理程序不是問題。我能做到這一點。我只是不確定如何計算元素在DOM樹中的位置并將其表示為XPath。PS贊賞使用或不使用JQuery庫的任何答案。PPS我對XPath完全不熟悉,所以我甚至可能在上面的例子中犯了一個錯誤,但你會明白這個想法。
查看完整描述

3 回答

?
米脂

TA貢獻1836條經驗 獲得超3個贊

我用來獲取類似于你的情況的XPath的函數,它使用jQuery:


function getXPath( element )

{

    var xpath = '';

    for ( ; element && element.nodeType == 1; element = element.parentNode )

    {

        var id = $(element.parentNode).children(element.tagName).index(element) + 1;

        id > 1 ? (id = '[' + id + ']') : (id = '');

        xpath = '/' + element.tagName.toLowerCase() + id + xpath;

    }

    return xpath;

}


查看完整回答
反對 回復 2019-09-20
  • 3 回答
  • 0 關注
  • 652 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號