重九译
2016-06-11 11:18
为什么点击清除时刚开始一次没反应,第二次就一下子删了两个,随后点就是一次一个,why?
<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++)
{
x= content.removeChild(content.childNodes[i]);
}
// 在此完成该函数
if(content.childNodes.length<1)
alert("No childNodes to be delete!")
}
</script>
<button onclick="clearText()">清除节点内容</button>
可能有两个原因,一是因为空白符也算子节点,二是因为你把0号子节点删除后后面的1号子节点往前补充成了0号子节点。你可以试着加入一个if语句判断下子节点的种类,种类为1就删除;还可以把遍历顺序改为倒序,for(var i=content.childNodes.length-1;i>=0;i--) ,你可以试一下是否能够解决。:)
JavaScript进阶篇
468062 学习 · 21891 问题
相似问题