慕粉1346254686
2017-03-31 11:48
// function clearText() {
// var content=document.getElementById("content");
// // 在此完成该函数
// var childNodes = content.childNodes;
// for(i=0;i<childNodes.length;i++){
// content.removeChild(childNodes[0]);
// }
// }
function clearText() {
var content=document.getElementById("content");
// 在此完成该函数
var nodel=content.childNodes.length;
for(var i=0;i<nodel;i++){
content.removeChild(content.childNodes[0]);
}
}
测试图片转base64
测试图片转base64
测试内容
测试内容
区别是第一个的content.childNodes.length随着你删除的节点个数在变化而下面的代码你将contentlchildNodes.length的初始值赋值给nodel值不会变化
这是删除的顺序问题,因为你删除第一个的时候其他的节点的顺序发生了改变,第二个节点代替了第一个节点的位置,后面一次类推,所以最删除的节点为1,3,5.。。等等
你的第二个函数这是永远执行的是删除第一个节点,那怕后面的顺序改变,也不会有影响的,因为他是一个一个个的上。。
当然你也可以换个顺序进行删除,var nodel=content.childNodes.length-1;
for(var i=nodel;i>=0;i--)
{
content.removeChild(content.childNodes[i]);
}
上面一个清除节点,第一次没效果,第二次突然清除3个,第三、四次各清除1个,而下面的能够做到一次性直接全部清除,为什么?
JavaScript进阶篇
468194 学习 · 21891 问题
相似问题