新聞中心
在我們工作中大多數(shù)DOM腳本的主要任務(wù)就是在DOM文檔中插入,刪除和移動(dòng)節(jié)點(diǎn)。W3C DOM 提供了4種方法來(lái)修改文檔樹(shù)。常用的是appendChild()和insertBefore(),而removeChild() 和replaceChild()很少用到。

一般用法
修改文檔提供的4個(gè)方法,都是指向它們所作用的節(jié)點(diǎn)的引用。導(dǎo)航條實(shí)例:
appendChild()
appendChild()方法讓你添加一個(gè)節(jié)點(diǎn)并使其成為某個(gè)元素的***一個(gè)子節(jié)點(diǎn)。如果添加的該節(jié)點(diǎn)已經(jīng)存在于文檔中,它會(huì)從當(dāng)前位置移除。該節(jié)點(diǎn)的子節(jié)點(diǎn)保持不變,它們也被一起移動(dòng)到新的位置。
創(chuàng)建新DOM元素的通用函數(shù)
我們看到結(jié)果:
添加好的子節(jié)點(diǎn)
從原始位置上被移除,成為ul的***一個(gè)子節(jié)點(diǎn)
insertBefore()
insertBefore()方法允許你在其他節(jié)點(diǎn)的前面插入一個(gè)節(jié)點(diǎn),所以當(dāng)你想要添加一個(gè)子節(jié)點(diǎn),但又不希望該節(jié)點(diǎn)成為***一個(gè)子節(jié)點(diǎn)的時(shí)候,就可以使用此方法。就像appendChild()方法一樣,如果插入的節(jié)點(diǎn)已經(jīng)存在于文檔之中,它會(huì)被從當(dāng)前位置移除,而且該節(jié)點(diǎn)在被插入之后乃保持它的子節(jié)點(diǎn)結(jié)構(gòu)。
#p#
在其他節(jié)點(diǎn)的前面插入一個(gè)節(jié)點(diǎn)
replaceChild()
replaceChild()方法允許你把一個(gè)節(jié)點(diǎn)替換為另一個(gè)節(jié)點(diǎn)。就像appendChild()和insertBefore()一樣,如果插入的節(jié)點(diǎn)已經(jīng)存在于文檔之中,它會(huì)被從當(dāng)前位置移除,而且該節(jié)點(diǎn)在被插入之后乃保持它的子節(jié)點(diǎn)結(jié)構(gòu)。
把一個(gè)節(jié)點(diǎn)替換為另一個(gè)節(jié)點(diǎn)
removeChild()
removeChild()方法允許你移除一個(gè)節(jié)點(diǎn)以及它的子節(jié)點(diǎn)們。
你移除一個(gè)節(jié)點(diǎn)以及它的子節(jié)點(diǎn)們
移除所有的子節(jié)點(diǎn)
有的時(shí)候你需要把一個(gè)元素清除干凈;你想在添加新節(jié)點(diǎn)前清除原來(lái)的所有子點(diǎn)。有兩個(gè)簡(jiǎn)單的方法來(lái)做這件事情:
這是一個(gè)簡(jiǎn)單的while()循環(huán),只要元素存在***個(gè)節(jié)點(diǎn)(childNodes[0]),它就移除這個(gè)節(jié)點(diǎn),接著節(jié)點(diǎn)集合立即更新。所以(原來(lái)的)第二個(gè)節(jié)點(diǎn)成為了***個(gè)節(jié)點(diǎn),循環(huán)就會(huì)一直重復(fù),直到X沒(méi)有子節(jié)點(diǎn)為止。另一個(gè)方法就簡(jiǎn)單了
#p#
輔助函數(shù)
appendChild()和insertBefore()都有2個(gè)參數(shù),但是我們?cè)趹?yīng)用的時(shí)候,還要注意參數(shù)的先后順序。既然這么麻煩我們還是自己寫(xiě)一些輔助函數(shù)來(lái)代替原有的appendChild()和insertBefore()。在另一個(gè)元素之前插入元素的函數(shù):
為另一個(gè)元素添加一個(gè)子元素:
before和append的輔助函數(shù):
注意:constructor的用法。
有時(shí)你可能需要對(duì)變量進(jìn)行類(lèi)型檢查,或者判斷變量是否已定義。有兩種方法可以使用:typeof函數(shù)與constructor屬性。typeof可以檢查到變量是否有定義,而construct只能檢查已定義變量的類(lèi)型。
移除所有的子節(jié)點(diǎn)的輔助函數(shù):
分享名稱(chēng):JavaScriptDOM修改文檔樹(shù)方法實(shí)例
網(wǎng)站路徑:http://m.fisionsoft.com.cn/article/coodjip.html


咨詢
建站咨詢
