DOM:提供了一些方法,可以操作html和xml
一、DOM基本操作(document代表整個文檔,html只是文檔裏的根標籤)
1、查看元素節點
document.getElementById(ie8以下,同名的name屬性也可以匹配到)
document.getElementsByTagName()[index],兼容性沒毛病
document.getElementsByClassName()[index],ie9以下沒有
document.getElementsByName()[index],name本身表示數據名,理論上只是部分標籤使用(表單元素,img,iframe)
document.querySelector(),css選擇器,選出來的元素不是實時的。ie6和7沒有
document.querySelectorAll()
2、遍歷節點樹:
parentNode 父節點(最頂端的parentNode爲document)
childNodes 子節點
firstChild
lastChild
nextSibling
previousSibling
3、遍歷元素節點樹:(除了children,都是ie9一下不兼容)
parentElement(最頂端不到document)
children
其餘都加element
4、節點的四個屬性:
nodeName(只讀)
nodeValue(text節點和comment節點有)
nodeType(只讀)(1元素, 2屬性, 3文本, 8註釋, 9document, 11文檔碎片)
attributes
5、節點的方法
hasChildNodes
二、DOM結構樹:一系列繼承關係()
document --> HTMLDocument.prototype --> Document.prototype --> Node --> EventTarget --> Object.prototype
text --> Text -- > CharacterData
comment --> Comment -- > CharacterData
標籤們 --> HTMLTagElement --> HTMLElement -->Element
getElementById定義在Document.prototype
getElementsByTagName、getElementsByClassName、querySelector、querySelectorAll定義在Document.prototype和Element.prototype
三、DOM增刪改
1、增
document.createElement
document.createTextNode
document.createComment
document.createDocumentFragment
2、插入
ParentNode.appendChild
ParentNode.insertBefore(a,b),insert A before B
3、刪
parent.removeChild,謀殺,本質是剪切
child.remove,自殺,本質是徹底銷燬
4、替換
parent.replaceChild(new, origin)
四、元素節點
1、Element節點的屬性
innerHTML,可讀可寫(常用)
innerText,可讀可寫(老版本火狐不兼容,火狐支持textContent(老IE沒有))
2、Element節點的方法
elem.setAttribute('屬性名', '屬性值')
elem.getAttribute('屬性名')
以上內容屬二哥原創,整理自 "渡一教育Javascript課程" ,一個值得推薦的"渡一教育"。