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

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


咨詢
建站咨詢
