1. 程式人生 > >javascript文件物件模型DOM入門詳解

javascript文件物件模型DOM入門詳解

DOM:



一、什麼是DOM:

Document Object Model(文件物件模型),DOM是屬於javascript的三分之一(JS組成:ECMAscript、DOM、BOM)



二、為什麼使用DOM:

Web前端開發一般用到HTML、CSS、JS
其中HTML負責內容,CSS負責外觀,javascript負責行為
JS的行為主要是:
1、interact with HTML,既和HTML進行互動,當然,也可以操作HTML頁面的外觀
(使用DOM);

2、interact with browser,既和瀏覽器進行互動(使用BOM)。


而JS和HTML屬於不同領域的語言,JS屬於指令碼語言(程式語言之一),HTML屬於標記語言(markup,不是程式語言)。
如果JS想和HTML進行互動(比如對HTML內容的增刪改查,接收event事件),就要用到一個工具獲取到HTML的內容,而這

個工具就是DOM。


三、DOM(準確來說應該是:1、DOM樹;2、DO,文件物件)是如何生成的:

當客戶端(如瀏覽器)從伺服器獲取到HTML、CSS、JS後,就會啟動對應的解析器解析這些內容。
解析器解析HTML時,會把HTML內容呈現給使用者,當然,也會將HTML按照特定的結構、順序生成一個DOM,提供給JS使用;




四、DOM結構的生成(見下圖)
1、整個HTML文件被當成一個document物件,它是整個DOM的根節點,就像一棵樹的樹根;
2、接下來就是<html>元素,它是document的子節點(這裡我們簡稱html節點,下同),就像樹幹;
3、再接下來就是<head>和<body>,它們是html節點的子節點,就像大樹枝,head節點和body節點是同級關係,即兄弟(sibling)節點;
4、進而會是head節點和body節點各自的子節點,如<script>、<div>等元素對應的節點,就像小樹枝;
5、重複第4步驟,不斷獲取各自的子節點,一直解析到文字節點(單純的文字,沒有其它元素),它是最終一代的節點(注意:文字也有對應的節點textNode,特別是在用JS遞迴或迴圈迭代尋找節點的時候要注意)


五、DOM的使用:

DOM生成之後就可以在JS程式碼中使用了,這時候主要依靠document物件作為HTML文件入口就可以操作整個HTML頁面了。

比如document.getElementsByTagName("body");就會返回一個body節點了,接下來,程式狗發力的時候到了。。。詳情見下回分解。。。