【发布时间】:2013-05-19 20:36:12
【问题描述】:
我正在使用 javascript 进行开发,我需要获取被点击元素的 xpath。 我知道为了获得 id 我们可以这样做:
element.onclick = function(event)
{
var target_id = event.target.id;
}
我该怎么做才能获得 xpath ?
问候。
【问题讨论】:
标签: xpath
我正在使用 javascript 进行开发,我需要获取被点击元素的 xpath。 我知道为了获得 id 我们可以这样做:
element.onclick = function(event)
{
var target_id = event.target.id;
}
我该怎么做才能获得 xpath ?
问候。
【问题讨论】:
标签: xpath
这里:
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 方法。
有很多方法可以使用 XPath 访问元素。例如,您可以通过节点名称或其中一个属性或子节点的值来访问它。所以你不能指望 javascript 正好给你其中之一。
但是由于您有 id,访问该元素的最简单的 xpath 查询将是:
//*[@id="THE_ID"]
【讨论】:
//*[@id="THE_ID"]
DOM Path 而不是 XPath 表达式。 (虽然 DOM 路径也是有效的 XPath 表达式)检查 this question