2

In JavaScript, supposing I have a reference to an element, how do I retrieve an XPath expression that would select it?

Is there something like objElement.xpath?

Shog9
  • 152,046
  • 34
  • 225
  • 232
Annibigi
  • 5,715
  • 5
  • 22
  • 21

2 Answers2

2

Since Annibigi doesn't want to post the solution, I'll do it: See this snippet.

Aaron Digulla
  • 310,263
  • 103
  • 579
  • 794
0

This is not XPATH related, but just to show you how you can get the parent/child relationship with a damn simple while loop.

var pathAt = function(node) {
    var stack = [];
    while(node.parentNode !== null) {
        stack.unshift(node.tagName);
        node = node.parentNode;
    }
    return stack.join('/');
}

// Usage : pathAt(document.getElementBy('moo'));
// Outputs : "HTML/BODY/CENTER/TABLE/TBODY/TR/TD/TABLE/TBODY/TR/TD/TABLE/TBODY/TR/TD/TABLE/TBODY/TR/TD"
Christophe Eblé
  • 7,891
  • 3
  • 32
  • 30