为什么我要按三次才能全部删除,怎么做到点击一次就能全部删除?

<!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 banana=document.getElementsByTagName("h1");
  for (var i=0;i<banana.length;i++) {
      content.removeChild(banana[i]);
  }
  
}
</script>

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



</body>
</html>


剑敛卿尘
浏览 1650回答 3
3回答

朝花

你的循环在判断的时候 会重新banana.length的值,每删除一个,这个值就改变了一次,所以不能一次全部清除。及  i=0 的时候 length= 5 ,i=1 length=4 ,i=2 length=3, i=3 ,i<length 不满足,跳出循环 所以第一次只删除了3个,依次类推,需要删几次。改变一下 如上我回复的代码,即可一次全部清除。

lynhao

 因为没点一次执行一次for循环总共循环三次,要全部删除用个while试试  while(div.hasChildNodes()) //当div下还存在子节点时 循环继续     {         div.removeChild(div.firstChild);     }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript