动态删除某节点下的所有节点 出错 指点下。谢

[code="java"]




对外投资情况表
window.onload = init; function init() { var bodyObj = document.getElementById("tbodyObj"); for(i=0; i<2; i++) { var newRow = document.createElement("tr"); var newTd0 = document.createElement("td"); var newTd1 = document.createElement("td"); newTd0.innerText = '' + (i+1); newTd1.innerHTML = '表格' + i; newRow.appendChild(newTd0); newRow.appendChild(newTd1); bodyObj.appendChild(newRow); } } function deleteRow() { var mainBody = document.getElementById("tbodyObj"); var tbodyObjNodes = mainBody.childNodes; var len = tbodyObjNodes.length; for(j=0; j<len; j++) { alert(len + "" + tbodyObjNodes[j]); tbodyObjNodes[j].removeNode(true); } }


点击测试仪


[/code]

看来你这个是专门针对IE的
改成如下[code="java"]
for(j=len-1; j>=0; j--) {
alert(len + "" + tbodyObjNodes[j]);
tbodyObjNodes[j].removeNode(true);
}
[/code]
因为每删除一个节点 tbodyObjNodes的childNodes就会少一个 所以当你删除一个节点时 第二个节点已经不存在了 (已经是第一个了)

[quote]
for(j=0; j<len; j++) {

alert(len + "" + tbodyObjNodes[j]);

tbodyObjNodes[j].removeNode(true);

}

[/quote]
问题出在这断代码,你删一个就少一个了啊。改成下面这样试试
[code="javascript"]
for(j=0; j<tbodyObjNodes.length; j++) {

alert(len + "" + tbodyObjNodes[j]);

tbodyObjNodes[j].removeNode(true);

}

[/code]