mosaice
2015-05-29 14:41
function clearText() {
var content=document.getElementById("content");
// 在此完成该函数
for(i=content.childNodes.length;i>0;i++){
content.removeChild(content.childNodes[0])
}
}
这个代码虽然可以用 但是我对里面的顺序有点不理解 我自己理解是
第一次循环之后 i的值虽然加一了但是在第二圈循环开始的时候i重新赋值了所以i++这个条件并没有什么用
for(i=content.childNodes.length;i>0;)
然后一开始我是这么写的 测试的时候失败了后来重新试试又成功了 不知道这么写有问题吗?
首先来了解一下 for 循环在 js 中的运行机制
for(语句1; 语句2; 语句3){//代码块}
语句 1 在循环(代码块)开始前执行
语句 2 定义运行循环(代码块)的条件
语句 3 在循环(代码块)已被执行之后执行
所以 循环阶段 语句1是不执行的 ;然后循环开始,先判断语句2 成功则执行代码块 失败则跳出循环;如果运行代码块,每一次循环结束后执行语句3
然后我们来看代码
function clearText() { var content=document.getElementById("content"); // 在此完成该函数 for(var i=content.childNodes.length;i>0;i++){ content.removeChild(content.childNodes[0]) } }
这段代码原意应该是删除 content 的所有子元素,按照逻辑 for循环中的语句3应该为 i--
最后如果 不想写语句1 和语句3的话 可以改写成
for(;content.childNodes.length>0;){ content.removeChild(content.childNodes[0]) }
哎 写了这么多 最后发现 代码中 循环里有个分号用的是 中文的分号;
JavaScript进阶篇
468194 学习 · 21891 问题
相似问题