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

条件循环错在哪里了

<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++){

  var x=content.removeChild(content.childNodes[i]);}/

  

  return x;

}

</script>


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




</body>

</html>


正在回答

2 回答

这样子一次性清理不完,是因为每次清理一个节点后,后面的节点会顶上来,造成一般一般的清理。要么不要i++。每次都清除第一个节点,要么使用i--。



我的写法:

function clearText() {

  var content=document.getElementById("content");

  // 在此完成该函数

  var num = content.childNodes.length;

  for (var i=num-1;i>0;i--){

      var node = content.childNodes[i];

      content.removeChild(node);

  }

}

1 回复 有任何疑惑可以回复我~
#1

无知的狗3576298

代码有个错误——循环条件 i>0 改为 i>=0;不然有个文本节点没删掉。
2016-08-08 回复 有任何疑惑可以回复我~

for循环里面的长度换一个变量去装,不要放在那里面,否则会出错

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

举报

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

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

进入课程

条件循环错在哪里了

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