<!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");
// 在此完成该函数
var banana=document.getElementsByTagName("h1");
for (var i=0;i<banana.length;i++) {
content.removeChild(banana[i]);
}
}
</script>
<button onclick="clearText()">清除节点内容</button>
</body>
</html>
3 回答
已采纳
朝花
TA贡献6条经验 获得超8个赞
你的循环在判断的时候 会重新banana.length的值,每删除一个,这个值就改变了一次,所以不能一次全部清除。
及 i=0 的时候 length= 5 ,i=1 length=4 ,i=2 length=3, i=3 ,i<length 不满足,跳出循环 所以第一次只删除了3个,依次类推,需要删几次。改变一下 如上我回复的代码,即可一次全部清除。
lynhao
TA贡献81条经验 获得超57个赞
因为没点一次执行一次for循环总共循环三次,要全部删除用个while试试 while(div.hasChildNodes()) //当div下还存在子节点时 循环继续 { div.removeChild(div.firstChild); }
添加回答
举报
0/150
提交
取消