什么是DOM?
外行看來前端工程師的工作就是改頁面(HTML、CSS),寫腳本(JavaScript)。當(dāng)你意識到你不是在改HTML而是在操作DOM時,你就升級了! 那么什么是DOM?
MDN:文檔對象模型(DOM)是HTML和XML文檔的編程接口。它提供了對文檔的結(jié)構(gòu)化的表述,并定義了一種方式可以使從程序中對該結(jié)構(gòu)進(jìn)行訪問,從而改變文檔的結(jié)構(gòu),樣式和內(nèi)容。DOM 將文檔解析為一個由節(jié)點和對象(包含屬性和方法的對象)組成的結(jié)構(gòu)集合。簡言之,它會將web頁面和腳本或程序語言連接起來。
說白了DOM就是瀏覽器為JavaScript提供的一系列接口(通過window.documnet提供的),通過這些接口我們可以操作web頁面。但DOM并不是編程語言,它是文檔對象的模型,該模型是獨立于編程語言的。比如我們在Python中也可以操作DOM:
所以Web前端常講的DOM API (web 或 XML 頁面) = DOM + JS (腳本語言)
DOM 創(chuàng)建
DOM節(jié)點(Node)通常對應(yīng)于一個標(biāo)簽,一個文本,或者一個HTML屬性。DOM節(jié)點有一個nodeType屬性用來表示當(dāng)前元素的類型,它是一個整數(shù):
Element,元素
Attribute,屬性
Text,文本
DOM節(jié)點創(chuàng)建最常用的便是document.createElement和document.createTextNode方法:
DOM 查詢
元素查詢的API返回的的結(jié)果是DOM節(jié)點或者DOM節(jié)點的列表。document提供了兩種Query方法:
Element也提供了很多相對于元素的DOM導(dǎo)航方法:
DOM 更改
屬性操作