区别:DOM Core 与 HTML-DOM
DOM(文檔對象模型)是由W3C制定的一套訪問和操作XML(eXtensible Markup Language)文檔的標(biāo)準(zhǔn),即API。比如DOM告訴JavaScript引擎如何在瀏覽器窗口中顯示和操作XML創(chuàng)建的標(biāo)記(Tag)。
DOM與特定的平臺(tái)、瀏覽器、語言無關(guān),很多種語言都實(shí)現(xiàn)了DOM,比如因?yàn)镴avaScript和PHP都實(shí)現(xiàn)了DOM,所以 JavaScript中有g(shù)etElementsByTagName()方法,PHP中也有 getElementsByTagName(),getElementsByTagName()方法是DOM規(guī)定的訪問XML文檔的接口。
XML與HTML相似,但兩者是有區(qū)別。XML和HTML都來自于SGML,它們都含有標(biāo)記,有著相似的語法,HTML和XML的最大區(qū)別在 于:HTML是一個(gè)定型的標(biāo)記語言,用固定的標(biāo)記來描述和顯示數(shù)據(jù),比如
<h1>表示首行標(biāo)題,有固定的尺寸;而XML沒有固定的標(biāo)記,只能通過自定義的標(biāo)記來描述數(shù)據(jù)的形式和結(jié)構(gòu),而不能顯示。HTML是將數(shù)據(jù) 和顯示混在一起,而XML則是將數(shù)據(jù)和顯示分開來。那為什么能使用DOM訪問和操作HTML文檔(即網(wǎng)頁)呢?Web語義化的一個(gè)發(fā)展方向是將HTML逐 漸演變?yōu)楦姓Z義、能將數(shù)據(jù)內(nèi)容與現(xiàn)實(shí)分離的XML,但HTML不可能立即演變?yōu)閄ML,目前推薦使用的是一個(gè)過渡產(chǎn)物——XHTML。HTML與 XHTML網(wǎng)頁形成的節(jié)點(diǎn)樹(統(tǒng)稱為HTML節(jié)點(diǎn)樹)在結(jié)構(gòu)上與XML節(jié)點(diǎn)樹一樣,可以看做是一個(gè)符合DOM的XML文檔,因此可以使用實(shí)現(xiàn)了DOM的程 序語言(如JavaScript、PHP等)來訪問和操作HTML文檔,即訪問和操作那些節(jié)點(diǎn)。
由于HTML與XML的相似性及差異,JavaScript不僅實(shí)現(xiàn)了標(biāo)準(zhǔn)的DOM方法和屬性(即由W3C制定的),而且還實(shí)現(xiàn)了HTML特有的 DOM方法和屬性,前者稱為DOM Core,并不專屬于JavaScript,后者稱為HTML-DOM。不管是DOM Core還是HTML-DOM,我們在使用JavaScript的時(shí)候要注意瀏覽器之間的兼容性,因?yàn)椴煌臑g覽器對這兩類方法和屬性的支持可能不一樣。 這里不詳談DOM Core和HTML-DOM,以及跨瀏覽器兼容性,教材上都有詳細(xì)描述。但一般推薦使用DOM Core方法和屬性,盡管稍顯繁雜。
常見的Core DOM方法如下:
1、創(chuàng)建節(jié)點(diǎn)
createElement()
createTextNode()
2、復(fù)制節(jié)點(diǎn)
cloneNode()
3、插入節(jié)點(diǎn)
appendChild()
insertBefore()
4、刪除節(jié)點(diǎn)
removeChild()
5、替換節(jié)點(diǎn)
replaceChild()
6、查找和設(shè)置節(jié)點(diǎn)屬性
setAttribute()
getAttribute()
7、查找節(jié)點(diǎn)
getElementById()
getElementsByTagName()
hasChildNode()
常見的Core DOM屬性如下:
node.childNodes
node.firstChild
node.lastChild
node.nextSibling
node.previousSibling
node.parentNode
總結(jié)
以上是生活随笔為你收集整理的区别:DOM Core 与 HTML-DOM的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HTML DOM Table 对象
- 下一篇: 使用DOM操纵HTML文档几点粗浅认识