前端培訓-中級階段(3) - DOM 文檔對象模型(2019-06-27期)

前端最基礎的就是 HTML+CSS+Javascript。掌握了這三門技術就算入門,但也僅僅是入門,如今前端開發的定義已經遠遠不止這些。前端小課堂(HTML/CSS/JS),本着提高技術水平,打牢基礎知識的中心思想,咱們開課啦(每週四)。html

前面咱們已經基本掌握常規的語法語義,以及基本的使用方法。接下來咱們講深刻進去了解其中內在的原理。前端

今天講什麼?

  1. 什麼是 DOM ?
  2. DOM 文檔對象模型
  3. HTML 元素接口
  4. DOM 元素繼承

什麼是 DOM ?

DOM 一般上來說,咱們能夠理解爲用 JS 操做 HTML 的 API或者說 JS 和 HTML 中間的處理器適配器node

文檔對象模型 (DOM) 是 HTML 和 XML 文檔的編程接口
文檔對象模型 (DOM) 將 web 頁面與到腳本或編程語言鏈接起來。
一般是指 JavaScript,但將 HTML、SVG 或 XML 文檔建模爲對象並非 JavaScript 語言的一部分。
DOM模型用一個邏輯樹來表示一個文檔,樹的每一個分支的終點都是一個節點(node),每一個節點都包含着對象(objects)。
DOM的方法(methods)讓你能夠用特定方式操做這個樹,用這些方法你能夠改變文檔的結構、樣式或者內容。節點能夠關聯上事件處理器,一旦某一事件被觸發了,那些事件處理器就會被執行。
文檔對象模型 (DOM) - mdn

DOM 文檔對象模型

圈起來的是比較經常使用的接口。
clipboard.pngweb

DOM 接口測試地址正則表達式

DOM 接口 Attr

用來表示一個 DOM元素的屬性
大多數場景你可能會直接經過字符串的方式獲取屬性值(Element.getAttribute('name'))。
其實還有(Element.getAttributeNode())返回Attr類型。
目前 Attr接口 繼承於 Node接口。DOM4 級別上會移出,因此儘可能不要使用 Node接口上的屬性
clipboard.png編程

DOM 接口 Element

很是通用的基類,全部 Document對象下的對象都繼承它
Element接口繼承 Node接口segmentfault

DOM 接口 Comment

Comment 接口表明標籤(markup)之間的文本符號(textual notations)。儘管它一般不會顯示出來,可是在查看源碼時能夠看到它們。在 HTML 和 XML 裏,註釋(Comments)爲 '<!--' 和 '-->' 之間的內容。在 XML 裏,註釋中不能出現字符序列 '--'。瀏覽器

clipboard.png

DOM 接口 Event

Event 接口表示在 DOM 中發生的事件微信

  1. 用戶生成的(例如鼠標 click 或鍵盤 keydown 事件)
  2. 由 API 生成(例如指示動畫已經完成運行的事件,視頻已被暫停等等)

其下還有不少子類
clipboard.pngcookie

  1. CustomEvent
    CustomEvent 事件是由程序建立的,能夠有任意自定義功能的事件。
    好比說咱們模擬 click 操做
    document.querySelector('button').dispatchEvent(new CustomEvent('click'))

DOM 接口 Range

表示選區中包含的節點文本節點的文檔片斷

  1. document.createRange 方法建立
  2. Selection對象的 getRangeAt 方法取得(document.getSelection().getRangeAt(0))。
    clipboard.png
  3. 用構造函數 Range() 建立

仍是在作一個聊天框功能的時候,使用這個去重置焦點

DOM 接口 Document

Document接口表示任何在瀏覽器中已經加載好的網頁,並做爲一個入口去操做網頁內容(也就是DOM tree)。
DOM tree包括像 <body><head> 等元素。提供了全局操做 document 的功能。

  1. Document.scrollingElement 返回真實的滾動對象(用於 PC/M 兼容)
  2. Document.visibilityState 當前頁面狀態
  3. Document.hidden 當前頁面是否隱藏
  4. Document.documentElement 獲取根元素

其實功能還有不少,感興趣的能夠點標題看看

HTML 元素接口

針對具體的 HTML 元素,還有對應的接口,好比 input 會有對應的 valuerequired 等屬性
clipboard.png

HTMLVideoElement

clipboard.png

DOM 元素繼承

具體繼承方式以下。根據規範,不一樣的類型繼承了不一樣的屬性。不過通常元素都會繼承 EventTargetNodeElement
clipboard.png

微信公衆號:前端linong

clipboard.png

初級階段文章目錄

  1. 前端培訓-初級階段(17) - 數據存儲(cookie、session、stroage)
  2. 前端培訓-初級階段(13) - 正則表達式
  3. 前端培訓-初級階段(13) - 類、模塊、繼承
  4. 前端培訓-初級階段(13) - ECMAScript (內置對象、函數)
  5. 前端培訓-初級階段(13) - ECMAScript (語法、變量、值、類型、運算符、語句)
  6. 前端培訓-初級階段(1三、18)
  7. 前端培訓-初級階段(9 -12)
  8. 前端培訓-初級階段(5 - 8)
  9. 前端培訓-初級階段(1 - 4)

中級階段文章目錄

  1. 前端培訓-中級階段(2) - 事件(event) 事件冒泡、捕獲 - (2019-06-20期)

資料

  1. 前端培訓目錄、前端培訓規劃、前端培訓計劃
相關文章
相關標籤/搜索