权耀扬
2016-06-16 15:34
<div id="content">
<h1>html</h1>
<h2>php</h2>
<h3>javascript</h3>
<h4>jquery</h4>
<h5>java</h5>
</div>
<script type="text/javascript">
function clearText(){
var content=document.getElementById("content");
var cnode = content.childNodes;
for(var i = 0; i < cnode.length; i++){
/*document.write( cnode[i].nodeName + "a" + "<br />");
document.write( cnode[i].nodeType + "b" + "<br />");
document.write( cnode[i].nodeValue + "c" + "<br />");*/
content.removeChild(cnode[i]);
}
}
</script>
<button onclick="clearText()">清除节点内容</button>
为什么要点击两次按钮才能删除#content中的几个元素?是浏览器节点bug问题吗
while(content.childNodes.length) { content.removeChild(content.lastChild); }
抖个机灵跑
你把 for( )循环语句更改一下,(i=cnode.length,i>=0;i++) 因为正序删除 ,每次i都变
这是浏览器的原音,你用的浏览器中会将空白节点也转换为其中的一个节点,你第一次删除的是空白节点,第二次才删除到元素,如果你有疑问的话 可以将每次删除的内容的nodeValue和nodeName输出看看,就知道了,
如果你将div内的换行去掉应该就没了。
JavaScript进阶篇
468061 学习 · 21891 问题
相似问题
回答 1
回答 2
回答 3
回答 3
回答 2