DOM 增刪改查

什么是DOM

文檔對象模型 (DOM) 是 HTML 和 XML 文檔的編程接口。它給文檔(結構樹)提供了一個結構化的表述并且定義了一種方式—程序可以對結構樹進行訪問,以改變文檔的結構,樣式和內容。 DOM 提供了一種表述形式— 將文檔作為一個結構化的節點組以及包含屬性和方法的對象。從本質上說,它將 web 頁面和腳本或編程語言連接起來了。

  • 理解DOM結構

DOM: Document Object Module, 文檔對象模型。我們通過JavaScript操作頁面的元素,進行添加、移動、改變或移除的方法和屬性, 都是DOM提供的。DOM把一份文檔表示為一棵樹,是由節點(node)構成的一棵節點樹。

  • DOM節點

    根據 W3C 的 HTML DOM 標準,HTML 文檔中的所有內容都是節點:

  • 整個文檔是一個文檔節點

  • 每個 HTML 元素是元素節點

  • HTML 元素內的文本是文本節點

  • 每個 HTML 屬性是屬性節點

  • 注釋是注釋節點

  • 節點信息:nodeName(tagName)、nodeValue、nodeType.

    • nodeName
      • 元素節點的nodeName是標簽名稱
      • 屬性節點的nodeName是屬性名稱
      • 文本節點的nodeName是#text
      • 文檔節點的nodeName是#document
    • nodeValue
      • 文本節點的nodeValue包含文本
      • 屬性節點的nodeValue包含屬性值
      • 元素節點和文檔節點沒有nodeValue
    • nodeType
元素類型 節點類型
元素 1
屬性 2
文本 3
注釋 8
文檔 9
  • HTML DOM 節點樹

HTML文本會被解析為DOM樹, 樹中的所有節點均可通過 JavaScript 進行訪問。所有 HTML 元素(節點)均可被修改,也可以創建或刪除節點。


DOM操作

方法 功能
.createElement() 創建元素
.createTextNode() 創建文本
.createComment() 創建注釋節點
.createDocumentFragment() 創建一個新的空的文檔片段
.insertBefore() 在當前節點的某個子節點之前再插入一個子節點
方法 功能
.removeChild() 剪切, 返回刪除的節點
.remove() 刪除的節點
方法 功能
.innerHTML 改變 HTML 內容
.replaceChild() 替換子節點(new//新的, origin//老的)
. setAttribute() 設置屬性
方法 功能
.getElementById() 返回指定 id 屬性值的節點對應的對象
.getElementsByTagName() 返回一個對象數組,每個對象對應著這個標簽的一個元素
.getElementsByClassName() 返回一個具有相同類名的元素的數組
.getAttribute() 查詢屬性節點
.childNodes 獲取任何一個元素的所有子元素
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 節點的增刪改查 HTML的每個成分都可以看作是節點(文檔節點、元素節點、文本節點、屬性節點、注釋節點,其中,屬性節...
    柳叁叁閱讀 358評論 0 0
  • 本章內容 理解包含不同層次節點的 DOM 使用不同的節點類型 克服瀏覽器兼容性問題及各種陷阱 DOM 是針對 HT...
    悶油瓶小張閱讀 668評論 0 1
  • 要進行DOM的增刪改查的操作,首先要先搞懂: 什么是dom? Document Object Model,即文檔對...
    饑人谷_Dylan閱讀 1,871評論 0 50
  • 20170601 今天是兒童節,昨天媽媽問你,是否需要我休假,咱兩一起出去玩,你對我說不要,你要做功課 晚上接到你...
    春蕓1216閱讀 208評論 0 4
  • 最近在學習swift3.0 遇到了 修改函數參數時會報'xxx' is a 'let' constant的問題 解...
    JokAr_閱讀 839評論 0 0