善良阿呆
2016-08-03 19:47
<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++){
var mynode=content.removeChild(content.childNodes[i]);
mynode=null;
}
}
</script>
<button onclick="clearText()">清除节点内容</button>
因为当你执行了removeChild方法后,content.childNodes.length的值,以及content.childNodes[i]都发生了变化。比如题中有5个子节点,当删除第1个子节点(html),即content.childNode[0]后,原先的第2个子节点(php)已经变成第1个子节点了,conten.childNodes.length也从5变成了4 。所以想一次删除的方法应该是:
function clearText() {
var content=document.getElementById("content");
// 在此完成该函数
var content_child=content.childNodes;
var child_length=content_child.length;
for(var i=0;i<child_length;i++){
content.removeChild(content_child[0]);
}
}
删除代码一定要注意,删除一个后,一般节点就少了一个,所以删除一般是从大到小删除,即:for(var i=content.childNodes.length-1;i>=0;i--){...}
JavaScript进阶篇
468061 学习 · 21891 问题
相似问题