JS刪除子節點

    function deleteRow(obj) {
       var objChilds = obj.children; /* 得到子元素 */
       if(objChilds.length != 0) {/* 長度不爲0,開始刪除 */
           for(var i = objChilds.length-1; i>=0; i--) {
              obj.removeChild(objChilds[i]);
              alert("刪除  " + i);
           }
       }
   }
   倒着循環刪除,如果寫成
   i = 0;  i<length; i++ 
   會有問題,每次刪除之後,如下 :
   8
   7
   6
   5
   4
   3
   2
   1
   第一次將8刪除後,變成:
   7
   6
   5
   4
   3
   2
   1

   i變成1,這時候,JS應該是認爲:
    7 的序號爲0, 6的序號爲1,
    所以會去刪除 6,而跳過7,依次類推,不能完全刪除子節點;

其他刪除方法 :

function removeChildren(pnode){
var node=pnode.firstChild;
var tmpNode;
while(node!=pnode.lastChild){
tmpNode=node.nextSibling;
pnode.removeChild(node);
node=tmpNode;
}
//記得還要刪除最後一個孩子
pnode.removeChild(pnode.lastChild);
}

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