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

为什么我这段代码不能一次吧节点内容清理完,需要点几次按钮才行

<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 mynode=content.removeChild(content.childNodes[i]);

      mynode=null;

  }

}

</script>

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


正在回答

2 回答

因为当你执行了removeChild方法后,content.childNodes.length的值,以及content.childNodes[i]都发生了变化。比如题中有5个子节点,当删除第1个子节点(html),即content.childNode[0]后,原先的第2个子节点(php)已经变成第1个子节点了,conten.childNodes.length也从5变成了4 。所以想一次删除的方法应该是:

function clearText() {

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

  // 在此完成该函数

  var content_child=content.childNodes;

  var child_length=content_child.length;

  for(var i=0;i<child_length;i++){

      content.removeChild(content_child[0]);

  }

}


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

善良阿呆 提问者

懂了,谢谢您的帮助
2016-08-04 回复 有任何疑惑可以回复我~

删除代码一定要注意,删除一个后,一般节点就少了一个,所以删除一般是从大到小删除,即:for(var i=content.childNodes.length-1;i>=0;i--){...}

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

善良阿呆 提问者

懂了,谢谢您的回答
2016-08-04 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么我这段代码不能一次吧节点内容清理完,需要点几次按钮才行

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