<!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=0;i<content.childNodes.length;i++)
{
content.removeChild(content.childNodes[i]);
}
}
</script>
<button onclick="clearText()">清除节点内容</button>
</body>
</html>
以上是正序循环的代码 但是会发现会留下第二个和第四个节点删不尽
不应该在循环中使用length作为循环结束的条件,因为在循环中length会变的。每次循环结束 i++ length--,从循环来考虑,相当于删除了两个节点,然而实际上只删除了一个节点。这就是这个问题bug的来源
非常感谢,困扰很久的问题总算解决了
我试了正序 和你的代码一样 是可以删完的
是因为当循环开始 删掉第一个节点时 <h1>php</h1>本来在第二个节点变成了第一节点,但下一轮循环i已经加一了,所以会跳过这个节点没法删除, <h1>jquery</h1>同理。所以参考答案用了倒叙循环