正序删除时循环内总是删除第一个子节点但是还是不能一次性清除完,求大神指教是为什么

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

weixin_慕函数8491588

2022-03-12 15:33

<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>无标题文档</title>

</head>


<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(i=0;i<content.childNodes.length;i++)

    {

       var x=content.removeChild(content.childNodes[0]);

    }


}

</script>


<button onclick="clearText()">清除节点内容</button>




</body>

</html>


写回答 关注

3回答

  • weixin_慕神4436990
    2022-03-29 16:19:14

    这个可以从后往前删除就好了

    var i=content.childNodes.length-1;

    i>=0;

    i--

    这样就好了     

    黄海登

    这是为什么呢?

    2022-08-27 14:31:14

    共 1 条回复 >

  • weixin_慕神4436990
    2022-03-29 16:15:57

    我研究了一下整明白了,因为数组的长度在不断的变化

    第一次循环 i=0   i<length(5)  i++      删除一个数组元素剩4个

    第二次循环i=1    i<length(4)   i++     删除一个数组元素剩3个

    第三次循环i=2     i<length(3)  i++      删除一个数组元素剩2个

    第四次循环i=3     i<length(2)=false      跳出循环

    需要重新点击按钮重新开始循环也就是  i=0

  • weixin_慕神4436990
    2022-03-29 16:06:03

    我也是这么写的第一次删了三个   第二次第三次 各删除一个  三次才删除完

JavaScript进阶篇

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

468060 学习 · 21891 问题

查看课程

相似问题