DOM提供了對HTML文檔中元素、屬性以及文本的一系列操作方法和屬性。
通過對HTML節點的操作來實現相應的效果及交互。
節點分三類:元素節點、屬性節點、文檔節點,其中元素節點最為重要,后面兩種節點依賴于元素節點。
元素節點的獲取:
舊的查找方案:document.body【可直接拿到body元素】 document.forms【可拿到所有form表單】 document.href【可拿到所有帶href屬性的元素】
方法:
document.getElementByClassName(" ")
document.getElementById(" ")
document.getElementByTagName(" ")
【返回偽數組】
方法(ES6):
document.querySelector(" ")
document.querySelectorAll(" ")
通過元素之間的關系查找:
element.parentElement
element.firstElementChild
element.lastElementChild
element.children
element.previousElementSibling
element.nextElementSibling
操作元素節點:創建、添加,刪除,替換,克隆。
創建的節點并沒有添加到HTML文檔中,需要添加后才展現在HTML文檔里。
element.cloneNode( )【()里填寫true為深克隆,會將克隆元素的標簽內容一起復制,否則只復制標簽】
文本節點內容的獲取:
textNode.nodeValue【不常用】
elementNode.innerText【獲取元素下所有文本,只能修改文本,不能修改標簽】
elementNode.innerHTML【獲取元素下所有節點(包括注釋節點),能修改添加標簽】
屬性節點的操作:
elementNode.attributeName【for 屬性需寫成:htmlFor class屬性需要寫成:className】
elementNode..attributes【獲取某個元素下所有屬性節點】
操作方法:
element.getAttribute(" ")【獲取元素節點】
element.setAttribute(" ")【設置】
element.removeAttribute(" ")【刪除】
element.hasAttribute(" ")【是否存在】
自定義屬性:
在HTML里為某些同級相同標簽添加以data-開頭的自定義屬性,這樣在dom里可以通過dataset屬性即可操作元素節點
來源:https://www.icode9.com/content-4-582301.html