DOM究竟是什么?

DOM (Document Object Model) 譯為文檔對(duì)象模型,是 HTML 和 XML 文檔的編程接口。

HTML DOM 定義了訪問和操作 HTML 文檔的標(biāo)準(zhǔn)方法。

DOM 以樹結(jié)構(gòu)表達(dá) HTML 文檔。

HTML DOM 樹形結(jié)構(gòu):

DOM HTML tree
DOM與html,css,js以及瀏覽器之間的關(guān)系
DOM解釋參考:

作者:字非易
鏈接:https://www.zhihu.com/question/34219998/answer/268568438
來源:知乎
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。

牢記:站高一個(gè)維度去理解問題!
????為了理解DOM,我們至少需要站在瀏覽器的角度來思考。DOM概念本身很簡單,請(qǐng)先完全跟著我的思路來:
????普通文檔(.txt)和HTML/XML文檔(.html/*.xml)的區(qū)別僅僅是因?yàn)楹笳呤怯薪M織的結(jié)構(gòu)化文件;
????瀏覽器將結(jié)構(gòu)化的文檔以樹的數(shù)據(jù)結(jié)構(gòu)讀入瀏覽器內(nèi)存,并將每個(gè)樹的子節(jié)點(diǎn)定義為一個(gè)NODE(想象這顆樹,從根節(jié)點(diǎn)到葉子節(jié)點(diǎn)都被建模為一個(gè)NODE對(duì)象);這每個(gè)節(jié)點(diǎn)(NODE)都有自己的屬性(名稱、類型、內(nèi)容...);NODE之間有層級(jí)關(guān)系(parents、child、sibling...);以上已經(jīng)完成文檔的建模工作(將文檔內(nèi)容以樹形結(jié)構(gòu)寫入內(nèi)存),此時(shí)再編寫一些方法來操作節(jié)點(diǎn)(屬性和位置信息),即為NODE API。
????抽象一下:DOM是一種將HTML/XML文檔組織成對(duì)象模型的建模過程;DOM建模重點(diǎn)在于如何解析HTML/XML文檔和開放符合DOM接口規(guī)范的節(jié)點(diǎn)操作API接口。
????再抽象一下:解析文檔,建模成對(duì)象模型,開放API接口。
????最后:DOM:Document Object Model
????文檔對(duì)象模型再回顧下整個(gè)過程,每個(gè)步驟都可以問自己幾個(gè)問題,比如:DOM到底是建模過程,還是最后建的那個(gè)模型,還是指操作節(jié)點(diǎn)的API接口呢,還是...?以上是站在瀏覽器的角度思考DOM,你還可以站在瀏覽器設(shè)計(jì)人員、網(wǎng)頁編碼人員等角度考慮:DOM跟JavaScript什么關(guān)系?DOM很顯然誕生在瀏覽器,一開始是用JS實(shí)現(xiàn)的;但隨著DOM本身的發(fā)展,已經(jīng)形成規(guī)范,你可以用任何一種語言比如Python來解析文檔,生成對(duì)像樹,只要滿足DOM標(biāo)準(zhǔn),包括開放標(biāo)準(zhǔn)的操作接口,那你實(shí)現(xiàn)的就是一個(gè)DOM。DOM開放的接口如何操作?JS原生接口使用。JQuery高緯度封裝如何使用。...至此,你應(yīng)該明白了什么是DOM,甚至明白了為什么一開始不明白以后如何做,如何舉一反三,甚至還能看出一點(diǎn)如何建立體系化認(rèn)知的影子。笑牢記:站高一個(gè)維度去理解問題 !

DOM就是XML文檔在內(nèi)存中的表示形式,如下圖所示:

DOM樹

作者:用心閣
鏈接:https://www.zhihu.com/question/34219998/answer/58135899
來源:知乎
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、基本概念 1.1、DOM DOM是JS操作網(wǎng)頁的接口,全稱為“文檔對(duì)象模型”(Document Object ...
    周花花啊閱讀 3,455評(píng)論 0 6
  • 基本概念 DOM DOM 是 JavaScript 操作網(wǎng)頁的接口,全稱為“文檔對(duì)象模型”(Document Ob...
    許先生__閱讀 935評(píng)論 0 1
  • DOM 概述 DOM DOM 是 JavaScript 操作網(wǎng)頁的接口,全稱為“文檔對(duì)象模型”(Document ...
    oWSQo閱讀 757評(píng)論 0 0
  • 前言:在JavaScript中,DOM操作雖然公認(rèn)的不好用,但它是最基礎(chǔ)的,那么就讓我們通過本文就來認(rèn)識(shí)一下DOM...
    EnochQin閱讀 427評(píng)論 0 0
  • 前端必讀:瀏覽器內(nèi)部工作原理[https://kb.cnblogs.com/page/129756/] 作者: T...
    我是強(qiáng)強(qiáng)閱讀 1,246評(píng)論 0 2

友情鏈接更多精彩內(nèi)容