先列舉常用的幾種方式:
createElement() 創(chuàng)建一個元素節(jié)點 => 接收參數(shù)為string類型的nodename
createTextNode() 創(chuàng)建一個文本節(jié)點 => 接收參數(shù)為string類型的text內(nèi)容
createAttribute() 創(chuàng)建一個屬性節(jié)點 => 接收參數(shù)為string類型的屬性名稱
createComment() 創(chuàng)建一個注釋節(jié)點 => 接收參數(shù)為string類型的注釋文本
除了這幾個,還有一個常常會被我們忽略createDocumentFragment方法,它是用來創(chuàng)建虛擬的節(jié)點對象,或者說是碎片節(jié)點。
createDocumentFragment
DocumentFragment節(jié)點不屬于節(jié)點樹,繼承的parentNode屬性總是null,當(dāng)我們要把DocumentFragment節(jié)點插入文檔樹時,插入不是他本身,而是他所有的子孫節(jié)點。
createDocumentFragment帶來的性能優(yōu)化
當(dāng)需要添加多個dom元素時,如果先將這些元素添加到DocumentFragment中,再統(tǒng)一將DocumentFragment添加到頁面,會減少頁面渲染dom的次數(shù),效率會明顯提升。
還有一個很重要的特性是,如果使用appendChid方法將原dom樹中的節(jié)點添加到DocumentFragment中時,會刪除原來的節(jié)點。