日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
JavaScriptDOM修改文檔樹方法實(shí)例

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

一般用法

修改文檔提供的4個(gè)方法,都是指向它們所作用的節(jié)點(diǎn)的引用。導(dǎo)航條實(shí)例:

 
 
 
  1.  
  2.     

    我的導(dǎo)航條

                
  3.      
  4.        
  5. HOME
  6.  
  7.        
  8. (X)Html / Css
  9.  
  10.        
  11. Ajax / RIA
  12.  
  13.        
  14. GoF
  15.  
  16.        
  17. JavaScript
  18.  
  19.        
  20. JavaWeb
  21.  
  22.        
  23. jQuery
  24.  
  25.        
  26. MooTools
  27.  
  28.        
  29. Python
  30.  
  31.        
  32. Resources
  33.  
  34.      
  

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)到新的位置。

 
 
 
  1.   

創(chuàng)建新DOM元素的通用函數(shù)

 
 
 
  1.   

我們看到結(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)。

 
 
 
  1.   

 #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)。

 
 
 
  1.   

把一個(gè)節(jié)點(diǎn)替換為另一個(gè)節(jié)點(diǎn)

removeChild()

removeChild()方法允許你移除一個(gè)節(jié)點(diǎn)以及它的子節(jié)點(diǎn)們。

 
 
 
  1.   

你移除一個(gè)節(jié)點(diǎn)以及它的子節(jié)點(diǎn)們

移除所有的子節(jié)點(diǎn)

有的時(shí)候你需要把一個(gè)元素清除干凈;你想在添加新節(jié)點(diǎn)前清除原來的所有子點(diǎn)。有兩個(gè)簡(jiǎn)單的方法來做這件事情:

 
 
 
  1.   

這是一個(gè)簡(jiǎn)單的while()循環(huán),只要元素存在***個(gè)節(jié)點(diǎn)(childNodes[0]),它就移除這個(gè)節(jié)點(diǎn),接著節(jié)點(diǎn)集合立即更新。所以(原來的)第二個(gè)節(jié)點(diǎn)成為了***個(gè)節(jié)點(diǎn),循環(huán)就會(huì)一直重復(fù),直到X沒有子節(jié)點(diǎn)為止。另一個(gè)方法就簡(jiǎn)單了

 
 
 
  1.   

 #p#

輔助函數(shù)

appendChild()和insertBefore()都有2個(gè)參數(shù),但是我們?cè)趹?yīng)用的時(shí)候,還要注意參數(shù)的先后順序。既然這么麻煩我們還是自己寫一些輔助函數(shù)來代替原有的appendChild()和insertBefore()。在另一個(gè)元素之前插入元素的函數(shù):

 
 
 
  1.   

為另一個(gè)元素添加一個(gè)子元素:

 
 
 
  1.   

before和append的輔助函數(shù):

 
 
 
  1.   

注意:constructor的用法。

有時(shí)你可能需要對(duì)變量進(jìn)行類型檢查,或者判斷變量是否已定義。有兩種方法可以使用:typeof函數(shù)與constructor屬性。typeof可以檢查到變量是否有定義,而construct只能檢查已定義變量的類型。

移除所有的子節(jié)點(diǎn)的輔助函數(shù):

 
 
 
  1.   

網(wǎng)站標(biāo)題:JavaScriptDOM修改文檔樹方法實(shí)例
分享URL:http://www.5511xx.com/article/coodjip.html