2011-07-25 66 views

回答

2

您是不是要找你需要的東西是這樣的:

var getXPath = function(aNode) { 
    var xpath = '', prevSibling = aNode, position = 1, nodeType = aNode.nodeType, nodeName = aNode.nodeName; 

    while (prevSibling = prevSibling.previousSibling) { 
     if (prevSibling.nodeType == nodeType && prevSibling.nodeName == nodeName) { 
      position += 1; 
     } 
    } 

    xpath = ((nodeType == 3 /* TEXT_NODE */) ? 'text()' : nodeName) + '[' + position + ']' + (xpath.length ? '/' + xpath : ''); 

    if (aNode.parentNode && aNode.parentNode.nodeName != 'BODY') { 
     return xpath = (getXPath(aNode.parentNode, xpath) + '/' + xpath).toLowerCase(); 
    } 

    return xpath; 
}; 
+0

你的解決方案是偉大的,這是我想,太:) 但我更感興趣的是更直接的方式,來自瀏覽器的東西。 感謝您的重播。 – bozhidarc

+0

@bozhidarc AFAIK,元素沒有標準的.toXpath()方法。 – Fuser97381