removeChild使用時注意事項

weixin_34219944發表於2009-05-06


 假如:一段普通的程式碼:

其中gift_list為一個table的id

var giftBody = document.getElementById("gift_list").getElementsByTagName("tbody")[0];
var giftTrs = giftBody.getElementsByTagName("tr");
for (var i=0;i<giftTrs.length;i++)
{
    giftTrs[i].removeChild(giftTrs[i]);
}

那麼這時候只會刪除第一行,因為當刪除了一個之後,行的位置會向前移動一位。

giftTrs.length也會相應減一。

因此正確的操作方法是:

var giftBody = document.getElementById("gift_list").getElementsByTagName("tbody")[0];
var giftTrs = giftBody.getElementsByTagName("tr");
var len = giftTrs.length; //需要將giftTrs.length的length屬性儲存起來
for (var i=0;i<len;i++)
{
    giftBody.removeChild(giftTrs[0]);
}

相關文章