一、節點概述 網頁中的所有內容都是節點(標簽、屬性、文本、註釋等),使用node表示。HTML、DOM樹中的所有節點均可通過JavaScript進行訪問,所有HTML元素(節點)均可被修改,也可以創建或刪除。 利用DOM樹可以把節點劃分為不同的層級關係,常見的是父子兄層級關係。 一般地,節點至少擁有 ...
一、節點概述
- 網頁中的所有內容都是節點(標簽、屬性、文本、註釋等),使用node表示。HTML、DOM樹中的所有節點均可通過JavaScript進行訪問,所有HTML元素(節點)均可被修改,也可以創建或刪除。
- 利用DOM樹可以把節點劃分為不同的層級關係,常見的是父子兄層級關係。
- 一般地,節點至少擁有nodeType(節點類型)、nodeName(節點名稱)、nodeValue(節點值)這三個基本屬性。在實際開發中,節點操作主要操作的是元素節點。
- 元素節點nodeType為1。
- 屬性節點nodeType為2。
- 文本節點nodeType為3(文本節點包含文字、空格、換行等)。
二、獲取父節點
1.子元素.parentNode
返回某節點的父節點,得到的是離元素最近的父級節點(即親爸爸)。如果找不到父節點,就返回為null。
三、獲取子節點(偽數組)
1.父節點.children
返回所有的子元素節點,只返回子元素節點,其餘節點不返回。
返回第一個子元素節點的寫法:父節點.children[0]
返回最後一個子元素節點的寫法是:父節點.children[parentNode.children.length - 1]
四、獲取兄弟節點
- 獲取下一個兄弟節點:
元素.nextElementSibling
- 返回當前元素的下一個兄弟元素節點,如果找不到則返回null。
- 獲取上一個兄弟節點:
元素.previousElementSibling
- 返回當前元素的上一個兄弟元素節點,如果找不到則返回null。
五、創建節點/添加節點
- 步驟:先創建節點再添加節點。
- 創建節點語法格式:
document.createElement('標簽名')
- 添加節點:
- 在最後面追加節點:
父元素.appendChild(子元素)
- 在某個子元素的前面追加節點:
父元素.insertBefore(要插入的元素, 在哪個元素前面)
- 在最後面追加節點:
六、刪除節點
1.父元素.removeChild(要刪除的元素)
刪除節點必須通過父元素刪除。
七、複製節點
1.元素.cloneNode(布爾值)
- 預設是fales,是淺拷貝,即只克隆複製節點本身,不克隆裡面的子節點。
- 若為true,是深度拷貝,會複製節點本身以及裡面所有的子節點。