2011-12-09 58 views
2

有沒有什麼辦法可以更改下面的jquery代碼來查找html代碼的xpath位置。或者有沒有獨特的jQuery代碼,無論HTML(HTML正在改變)請訪問:http://jsbin.com/uhude3/19/edit因爲我寫代碼在那裏。我需要的是 - 在那裏我點擊元素上給我看的div,跨度,P @ HREF ...的XPath位置...等一個jquery腳本來查找單擊元素的xpath位置

jQuery(function($) { 

    $(".rightArrow").click(function() { 
     var rightArrowParents = []; 
     $(this).parents().not('html').each(function() { 
      var entry = this.tagName.toLowerCase(); 
      if (this.className) { 
       entry += "." + this.className.replace(/ /g, '.'); 
      } 
      rightArrowParents.push(entry); 
     }); 
     rightArrowParents.reverse(); 
     alert(rightArrowParents.join(" ")); 
    }); 

}); 

以及如何改變這種我的代碼了rhis下面:

function getXPath(element) 
{ 
    var xpath = ''; 
    for (; element && element.nodeType == 1; element = element.parentNode) 
    { 
     var id = $(element.parentNode).children(element.tagName).index(element) + 1; 
     id > 1 ? (id = '[' + id + ']') : (id = ''); 
     xpath = '/' + element.tagName.toLowerCase() + id + xpath; 
    } 
    return xpath; 
} 

當我點擊我得到一個xpath。如何結合這兩個代碼? http://jsbin.com/uhude3/19/edit

+0

如果XSLT解決方案可以接受,那麼這個解決方案既簡單又容易。你想看看嗎? –

+0

是的,請!感謝 –

+0

我在答覆中提供了XSLT解決方案的鏈接。 –

回答

1

這裏是一個XSLT解決方案Generate/get xpath from XML node java

你可以把它適應您的需求。

+0

是的,THANKS真的很有幫助,但是如何將這個XSLT解決方案集成到我的代碼中:http://jsbin.com/uhude3/19/edit –

+0

@JOJOJO:我沒有使用足夠的Javascript,但懷疑答案取決於在哪個XSLT處理器上可用 - 調用MSXML(使用其activex對象)的方式可能不同於調用FF使用的XSLT處理器的方式,也可能不同於Opera或Chrome中使用的XSLT處理器的方式。我相信這些XSLT處理器最有可能被記錄下來。 –

+0

我用代碼更新了我的代碼,但需要結合這兩個代碼才能正常工作。謝謝 –