removeChild问题

来源:9-14 删除节点removeChild()

权耀扬

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

写回答 关注

3回答

  • 黑色旋风
    2016-06-24 09:01:43
    while(content.childNodes.length) {
      content.removeChild(content.lastChild);
    }

    抖个机灵跑

  • 小西瓜籽
    2016-06-16 18:06:17

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

  • 漠南孤者
    2016-06-16 16:13:24

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

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

    权耀扬

    div换行去了还是有问题

    2016-06-16 16:35:28

    共 1 条回复 >

JavaScript进阶篇

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

468061 学习 · 21891 问题

查看课程

相似问题