Js removeChild 與 removeNode

在javascript操作dom樹的時候可能會經常遇到增加,刪除節點的事情,比如一個輸入框後一個增加按鈕,一個刪除按鈕,點擊增加就增加個輸入框,點擊刪除就刪除對應的輸入框。在一些js框架,如Prototype中,可以用element.remove()來刪除一個節點,核心JS中並沒有這樣的方法,IE中有這樣一個方法:removeNode(),嘗試運行下面的代碼

<script type="text/javascript"></script>

提示:你可以先修改部分代碼再運行。

可以發現,這個方法在IE下是好使的,但是在Firefox等標準瀏覽器中就會報錯了 removeNode is not defined,但是在覈心JS中有一個操作DOM節點的方法叫:removeChild(),看名字應該就知道是移除子節點的,那麼我們就可以變通一下來實現移除指定的節點了,我們可以先去找到要刪除節點的父節點,然後在父節點中運用removeChild來移除我們想移除的節點。我們可以定義一個方法,就叫removeElement吧。

1
2
3
4
5
6
function removeElement(_element){
         var _parentElement = _element.parentNode;
         if(_parentElement){
                _parentElement.removeChild(_element);  
         }
}

嘗試運行下面的代碼,可以在各種瀏覽器中正確執行了。

<script type="text/javascript"></script>

提示:你可以先修改部分代碼再運行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章