2010-10-16 55 views
3

我正在尋找一種方法來獲取相對於整個文檔的給定節點與Javascript的偏移量。例如:在Javascript中獲取整個html文檔中節點的偏移量?

<html> 
    <head></head> 
    <body> 
     <div id="mainContent"> 
      <h1 id="myTitle">Title</h1> 
      <p>First paragraph</p> 
      <p>Second <b>paragraph</b></p> 
     </div> 
    </body> 
</html> 

然後(使用JQuery):

$("#myTitle").getDocumentOffset() 

應該返回47,因爲與ID myTitle的H1開始於相對於整個文件偏移47 字符。

任何想法如何做到這一點?

在此先感謝。

回答

7

這個問題沒有意義,因爲在HTML文檔中會忽略額外的空格,因此可以用多種方式表示相同的頁面。例如,這樣的:

<html> 
    <body></body> 
</html> 

是相同的:

<html><body></body></html> 

而且,一旦在瀏覽器解析您的代碼,有沒有辦法找回原來的HTML標記(具有相同的空格)該文件存在於源文件中。這意味着您正在尋找的「偏移量」不是唯一定義的。

+0

難道不可能得到未解析的HTML嗎?如果是這樣,是否有可能獲得修剪身體的偏移量? (只從身體算起,除空格外沒有空格) - 更新:當我記錄$('html')。html()時,空格似乎被保留。例如。當我添加5個選項卡時,它顯示了這5個選項卡。它還顯示Javascript等 – Tom 2010-10-16 19:00:36

+0

或更好:$(document).children()。html() – Tom 2010-10-16 19:16:08

+0

@Tom:不能保證它會工作。例如,Firefox似乎保留了格式,而IE和Chrome都根據自己的喜好去掉空格。從「修剪過的身體」獲得偏移量並不容易:你必須編寫自己的DOM解析器。 – casablanca 2010-10-16 21:05:23

相關問題