为了账号安全,请及时绑定邮箱和手机立即绑定

removeChild问题

<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问题吗

正在回答

4 回答

while(content.childNodes.length) {
  content.removeChild(content.lastChild);
}

抖个机灵跑

1 回复 有任何疑惑可以回复我~

你把 for( )循环语句更改一下,(i=cnode.length,i>=0;i++)  因为正序删除 ,每次i都变

0 回复 有任何疑惑可以回复我~

这是浏览器的原音,你用的浏览器中会将空白节点也转换为其中的一个节点,你第一次删除的是空白节点,第二次才删除到元素,如果你有疑问的话  可以将每次删除的内容的nodeValue和nodeName输出看看,就知道了,

如果你将div内的换行去掉应该就没了。

0 回复 有任何疑惑可以回复我~
#1

权耀扬 提问者

div换行去了还是有问题
2016-06-16 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468061    人
  • 解答问题       21891    个

本课程从如何插入JS代码开始,带您进入网页动态交互世界

进入课程

removeChild问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信