为什么循环设置为 for(i=0;i<=content.childNodes.length;i++)时。要点三次才能清除?

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

hou_hou

2015-07-14 10:20

为什么循环设置为 for(i=0;i<=content.childNodes.length;i++)时。要点三次才能清除?

<!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 childNode = content.childNodes[i];

     content.removeChild(childNode);

  }

}

</script>

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

</body>

</html>


写回答 关注

2回答

  • 望舒3163112
    2016-04-08 19:28:59
    已采纳

    因为是删除操作 你每执行一次循环  你的长度就少一分。。。你的循环体设置的不合理。

    hou_ho...

    非常感谢!

    2016-07-03 14:29:58

    共 1 条回复 >

  • 泡芙公主果果
    2015-07-14 10:40:16

    content.childNodes.length是多少啊?看看值是多少,从0开始,循环几次。

JavaScript进阶篇

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

468194 学习 · 21891 问题

查看课程

相似问题