3 回答
TA贡献361条经验 获得超191个赞
for(var i=content.childNodes.length-1;i>=0;i--){ 先说说这种写法发生了什么,
当你点击触发,i的值是content.childNodes.length-1,条件是只要i>=0,就可以执行语句,因此这里i能执行到i=0;
因此这种写法下点击按钮所有节点全部删除
第二种写法:for(var i = 0; i < content.childNodes.length; ++i){
点击触发,i开始是0,条件是i要小于元素节点的个数,就是这里发生了问题,
i=0;length=11,执行语句删除节点,继续
i=1;length=10,执行语句删除节点,继续
i=2;length=9,执行语句删除节点,继续
i=3;length=8,执行语句删除节点,继续
i=4;length=7,执行语句删除节点,继续
i=5;length=6,执行语句删除节点,继续
i=6;length=5,条件不满足,停止!
再次点击,
i=0 ; length=5............
因此执行效果是不同的
TA贡献86条经验 获得超114个赞
这是代码。。
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
</head>
<body>
<div id="content">
<h1>html</h1>
<h1>php</h1>
<h1>javascript</h1>
<h1>jquery</h1>
<h1>java</h1>
</div>
<script type="text/javascript">
function clearText() {
var content=document.getElementById("content");
// 在此完成该函数
//for(var i=content.childNodes.length-1;i>=0;i--){
for(var i = 0; i < content.childNodes.length; ++i){
var childNode = content.childNodes[i];
content.removeChild(childNode);
}
}
</script>
<button onclick="clearText()">清除节点内容</button>
</body>
</html>
添加回答
举报