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

关于removechild清除的次数问题

<!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");

  // 在此完成该函数

   var cc=content.childNodes;

    for(var i=0;i<cc.length;i++)

    {x=content.removeChild(cc[i]);

     x=null;}

}

</script>


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




</body>

</html>

 为什么我这个清除分了三次才清除完

 我寻找 子类元素是一次就寻找完的,不知道为什么

正在回答

3 回答

原因我不知道,但是倒过来,写成i--的就可以一次清除了

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

这是因为每次清除节点时childNodes的长度(即tt.length)都缩短1,而每次I增大1,这样会导致i的值还没有达到最初的tt.length时循环会比提前结束;

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

在for循环里面,加上

if(otest[i].nodeType!=1){

         continue;  

      }

      else{

        var x=content.removeChild(otest[i]);  

      } 试试,具体原因,不是很懂


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

举报

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

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

进入课程

关于removechild清除的次数问题

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