前端最基礎的就是 HTML+CSS+Javascript
。掌握了這三門技術就算入門,但也僅僅是入門,如今前端開發的定義已經遠遠不止這些。前端小課堂(HTML/CSS/JS
),本着提高技術水平,打牢基礎知識的中心思想,咱們開課啦(每週四)。html
前面咱們已經基本掌握常規的語法語義,以及基本的使用方法。接下來咱們講深刻進去了解其中內在的原理。前端
DOM
一般上來說,咱們能夠理解爲用 JS 操做 HTML 的 API或者說 JS 和 HTML 中間的處理器適配器。node
文檔對象模型 (DOM) 是 HTML 和 XML 文檔的編程接口
文檔對象模型 (DOM) 將 web 頁面與到腳本或編程語言鏈接起來。
一般是指 JavaScript,但將 HTML、SVG 或 XML 文檔建模爲對象並非 JavaScript 語言的一部分。
DOM模型用一個邏輯樹來表示一個文檔,樹的每一個分支的終點都是一個節點(node),每一個節點都包含着對象(objects)。
DOM的方法(methods)讓你能夠用特定方式操做這個樹,用這些方法你能夠改變文檔的結構、樣式或者內容。節點能夠關聯上事件處理器,一旦某一事件被觸發了,那些事件處理器就會被執行。
文檔對象模型 (DOM) - mdn
圈起來的是比較經常使用的接口。
web
DOM 接口測試地址正則表達式
用來表示一個 DOM元素的屬性。
大多數場景你可能會直接經過字符串的方式獲取屬性值(Element.getAttribute('name')
)。
其實還有(Element.getAttributeNode()
)返回Attr類型。
目前 Attr接口 繼承於 Node接口。DOM4 級別上會移出,因此儘可能不要使用 Node接口上的屬性
編程
很是通用的基類,全部 Document
對象下的對象都繼承它。Element
接口繼承 Node
接口segmentfault
Comment
接口表明標籤(markup)之間的文本符號(textual notations)。儘管它一般不會顯示出來,可是在查看源碼時能夠看到它們。在 HTML 和 XML 裏,註釋(Comments)爲 '<!--' 和 '-->' 之間的內容。在 XML 裏,註釋中不能出現字符序列 '--'。瀏覽器
Event 接口表示在 DOM 中發生的事件微信
click
或鍵盤 keydown
事件)其下還有不少子類
cookie
CustomEvent
事件是由程序建立的,能夠有任意自定義功能的事件。click
操做document.querySelector('button').dispatchEvent(new CustomEvent('click'))
表示選區中包含的節點和文本節點的文檔片斷。
document.createRange
方法建立Selection
對象的 getRangeAt
方法取得(document.getSelection().getRangeAt(0)
)。Range()
建立仍是在作一個聊天框功能的時候,使用這個去重置焦點
Document接口表示任何在瀏覽器中已經加載好的網頁,並做爲一個入口去操做網頁內容(也就是DOM tree)。
DOM tree包括像 <body>
、<head>
等元素。提供了全局操做 document
的功能。
Document.scrollingElement
返回真實的滾動對象(用於 PC/M 兼容)Document.visibilityState
當前頁面狀態Document.hidden
當前頁面是否隱藏Document.documentElement
獲取根元素其實功能還有不少,感興趣的能夠點標題看看
針對具體的 HTML 元素,還有對應的接口,好比 input
會有對應的 value
,required
等屬性
具體繼承方式以下。根據規範,不一樣的類型繼承了不一樣的屬性。不過通常元素都會繼承 EventTarget
、Node
、Element