<!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 cc=content.childNodes;
document.write(cc.length);/*就是这个,就是这个*/
for(var i=0;i<cc.length;i++)
{
x=content.removeChild(cc[i]);
x=null;}
}
</script>
<button onclick="clearText()">清除节点内容</button>
</body>
</html>
如 上代码,我加上 那个documentwrite 就可以一次性清除,但是如果没有就 要三次清除,document.wirte的用处是干什么的,难道是结算 cc的length的么,我真是搞不明白
首先加上documentwrite 并没有一次性清除,只是在显示上变了内容,感觉一次清除了;三次清除的原因是因为执行时cc[i]的长度是在变化的,而你的控制条件配合每一步的执行就变成了三次清除。
在浏览器控制台将你这段代码设置断点,一步一步执行你就明白问题出在哪里了
document.write() 输出显示括号内容
只是在加载完网页后执行document.write,在执行输出时会新建新的文档流覆盖了原来的内容(就是把原来body,head里面的内容清空),所以能起到一次清除作用,详情看http://www.softwhy.com/forum.php?mod=viewthread&tid=13582
至于没加之后要清三次,是因为你代码逻辑有问题(详情看)
http://www.imooc.com/qadetail/56371
同问,回来看答案