深入學習Html DOM樹的操作

來源:互聯網
上載者:User

你對HTML DOM樹的概念是否瞭解, 這裡和大家分享一下,DOM是文件物件模型(Document Object Model),是基於瀏覽器編程的一套API介面,W3C出台的推薦標準,每個瀏覽器都有一些細微的差別,單純的 Javascript要結合DOM才能做DHTML編程,才能做出漂亮的效果、應用於WEB。因此,必須要對DOM有一定的認識,才能把Javascript應用於WEB,或你的RIA應用當中,因為 DHTML本質上就是操作DOM樹。

DOM樹

DOM樹的根統一為文檔根—document,DOM既然是樹狀結構,那麼他們自然有如下的幾種關係:

◆根結點(document)

◆父結點(parentNode)

◆子結點(childNodes)

兄弟結點兄弟結點

(sibling)(sibling)
例子:

假設網頁的HTML如下

 
  1. <html> 
  2. <head> 
  3. <title>never-online'swebsite</title> 
  4. </head> 
  5. <body> 
  6. <div>tutorialofDHTMLandjavascriptprogramming</div> 
  7. </body> 
  8. </html> 
  9.  

我們參照樹的概念,畫出該HTML文檔結構的DOM樹:

             html
           body       head
       divt               itle
     文本                     文本

從上面的圖示可以看出html有兩個子結點,而html就是這兩個子節點的父結點,head有節點title,title下有一個文本節點,doby下有節點div,div下有一個文本節點。

操作DOM樹

開篇已經說過,DHTML本質就是操作DOM樹。如何操作它呢?假設我要改變上面HTML文檔中div結點的文本,如何做?

範例程式碼:

 
  1. <html> 
  2. <head> 
  3. <title>never-online'swebsite</title> 
  4. <script> 
  5. functionchangedivText(strText){  
  6. varnodeRoot=document;//這個是根結點  
  7. varnodeHTML=nodeRoot.childNodes[0];//這個是html結點  
  8. varnodeBody=nodeHTML.childNodes[1];//body結點  
  9. varnodeDiv=nodeBody.childNodes[0];//DIV結點  
  10. varnodeText=nodeDiv.childNodes[0];//文本結點'  
  11. nodeText.data=strText;//文本節點有data這個屬性,  
  12. 因此我們可以改變這個屬性,也就成功的操作了DOM樹中的一個結點了  
  13. }  
  14. </script> 
  15. </head> 
  16. <body> 
  17. <div>tutorialofDHTMLandjavascriptprogramming</div> 
  18. <inputonclickinputonclick="changedivText('change?')"
  19. type="button"value="change"/> 
  20. </body> 
  21. </html> 
  22.  

從上面的樣本可以看出,我們可以用上面的這種方法操作DOM樹上的任一節點。

註:

1.跨域除外,跨域通常是在操作frame上,簡單的說,就是兩個frame不屬於同一網域名稱。

2.上面的操作為了示範,採用的方法是從根結點一直到文本結點的遍曆,在DOM方法上,有更簡潔的方法,這些以後會有更多樣本加以說明。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.