在Javascript / jQuery中获取最短的xpath到元素

时间:2013-12-27 18:14:44

标签: javascript xpath

这是我正在尝试更改的基本脚本

http://jsfiddle.net/gaby/hsv97/2/

它为点击的元素提供xpath。 当您点击with deeper时,它会返回

//html/body/div[2]/em#emphatic/span#deepest.red

这是该元素的完整路径。但是,如果网站管理员决定增加div,那么#deepest.red的路径就会被破坏。 我想要的是最短的路径,从最近的id计算得出。所以在这种情况下,我只需要#deepest.red,后来我可以使用

来再次解决这个元素

$x("//div[contains(@id,'deepest-red')]");

有人能指出我正确的方向来改变这个小提琴以适应我的需要.......

1 个答案:

答案 0 :(得分:0)

我不确定我是否完全理解您的请求,但如果您需要解决路径中额外<div>的问题,那么“后代或自我”轴。

  

后代或自身
  选择当前节点和当前节点本身的所有后代(子节点,孙子节点等)

所以你的XPath将如下所示:

//html/body/descendant-or-self::div/em#emphatic/span#deepest.red