什麼是節點?html
HTML文檔中,全部內容都是節點。數組
整個文檔,是一個文檔節點;每個html元素,是一個元素節點;每個html屬性,是屬性節點;每個註釋,是註釋節點;html內的文本,是文本節點。app
DOM將HTML文檔被視爲樹結構,稱爲節點樹。spa
節點樹中全部節點均可經過js訪問或者修改。htm
節點樹中節點擁有層級關係---父(parent)、子(child)、同胞(sibling),父擁有子,同胞擁有相同的父。blog
建立節點rem
document.creatElement('標籤名') 建立一個節點---標籤名不區分大小寫。文檔
還有一種方法是複製已存在的節點,cloneNode(),括號裏面填寫true或false。false時,只執行一個淺複製,也就是說只複製做用的標籤,他的子元素不復制。基礎
clonNode(true)時,結果以下:方法
clonNode(false)時,結果以下:
插入節點
appendChild() 或者 insertBefore()
appendChild()在父元素上調用,把新元素插入到父元素中最後的位置。
insertBefore()在父元素上調用,接收兩個參數,參1:父元素中要添加的元素;參2:父元素中已存在的子元素。把要添加的元素放在哪一個元素的前面。
須要注意的是,調用這兩個方法時,若是將已經存在的節點再次插入,那麼原來位置的節點自動刪除,並在新的位置從新插入。
例:按照li標籤的內容,由大到小排列li。
代碼以下:
執行以後的結果以下:
數組arr中的li所有爲原來的li,並非新添加的li,因此appendChild()時,只是至關於從新排列了原來li的順序。
而新建立一個li標籤時,就會在已經存在的元素基礎上增長一個。
刪除節點
removeChild() --- 從文檔樹中刪除一個節點。 須要注意的是,該方法是在要刪除節點的父節點上調用,要刪除的節點做爲該方法的參數。
結果以下:
replaceChild() --- 刪除一個子節點,並用一個新節點取而代之。參1:新節點;參2:須要替代的節點。
例:給p標籤添加一個父元素div
結果以下: