猿问

求大神帮看一下 关于for循环的疑问?

<!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(var i=0;i<content.childNodes.length;i++){
      if(content.childNodes[i].nodeType!=1){   
         continue;  
      }else{
         content.removeChild(content.childNodes[i]);    
      }
         

  //法二,多次方清除节点内容
/*
   for(var i=0;i<content.childNodes.length;i++){
    var chnode=content.childNodes[i];
    content.removeChild(chnode);  
  }
*/
  
  }
  

</script>

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



</body>
</html>

法一跟法二的两个for循环有什么本质的区别 ? 为什么第一个for循环能直接删除所有内容 而第二个for循环只能多次删除内容? 一直想不通

csusun
浏览 1360回答 2
2回答

qq_岁月静好与君语_0

应该是方法2可以删除content.childNodes全部内容,而方法1只能部分删除吧,区别主要在于方法1中的continue关键字;如果满足上述条件则不执行删除操作,直接i++,继续下一次循环

ruibin

方法一的意思是删除所有节点类型不为1的节点(及元素节点),方法二是删除所有节点。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答