【问题标题】:Get element's xpath in javascript在javascript中获取元素的xpath
【发布时间】:2013-05-19 20:36:12
【问题描述】:

我正在使用 javascript 进行开发,我需要获取被点击元素的 xpath。 我知道为了获得 id 我们可以这样做:

element.onclick = function(event)
{
    var target_id = event.target.id;
}

我该怎么做才能获得 xpath ?

问候。

【问题讨论】:

标签: xpath


【解决方案1】:

这里:

function getXPath(node){
    if(node.hasAttribute("id")){
        return '//' + node.tagName + '[@id="' + node.id + '"]';
    }

    if(node.hasAttribute("class")){
        return '//' + node.tagName + '[@class="' + node.getAttribute("class") + '"]';
    }

    var old = '/' + node.tagName;
    var new_path = this.xpath(node.parentNode) + old;

    return new_path;
}

【讨论】:

  • 这段代码肯定不能按原样工作。 this.xpath 是什么?当节点变为 DOCUMENT 时失败,因为它没有 hasAttribute 方法。
【解决方案2】:

有很多方法可以使用 XPath 访问元素。例如,您可以通过节点名称或其中一个属性或子节点的值来访问它。所以你不能指望 javascript 正好给你其中之一。

但是由于您有 id,访问该元素的最简单的 xpath 查询将是:

//*[@id="THE_ID"]

【讨论】:

  • 我不需要用他的xpath获取元素,我需要获取点击元素的xpath。
  • 是的,我知道(你已经有了)。请再次阅读答案。您要查找的路径//*[@id="THE_ID"]
  • 听起来您正在搜索 DOM Path 而不是 XPath 表达式。 (虽然 DOM 路径也是有效的 XPath 表达式)检查 this question
  • 是的,这就是我想要的。我认为您的解释将帮助我找到解决方案。谢谢。
猜你喜欢
  • 1970-01-01
  • 2021-12-13
  • 2011-12-20
  • 1970-01-01
  • 2014-07-22
  • 1970-01-01
  • 2020-07-17
  • 2017-05-14
  • 1970-01-01
相关资源
最近更新 更多