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

如何实现逐个删除节点?

求助大神 我的代码是执行一次onclick就直接删除了3个节点,如何改写代码能实现逐个删除?

<script type="text/javascript">

function clearText() {

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

  for(i=0;i<content.childNodes.length;i++)

  {

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

      x=null;

  }

}

</script>

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


正在回答

2 回答

逐个删除完全可以不用循环啊。。。先清除空白文本。。。然后执行下面代码。

function clearText() {
  var content=document.getElementById("content");
  // 在此完成该函数
      content.removeChild(content.childNodes[0]);//也可以从后面逐个删除,把0改为content.childNodes.length-1

}

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

哈噜噜呦吧啦 提问者

为什么要点两次按钮才能删一条?
2017-05-10 回复 有任何疑惑可以回复我~
#2

我要SSR 回复 哈噜噜呦吧啦 提问者

你没有清除空白文本(换行符)吧。。。
2017-05-10 回复 有任何疑惑可以回复我~
#3

哈噜噜呦吧啦 提问者 回复 我要SSR

改好了~厉害厉害~灰常感谢!
2017-05-10 回复 有任何疑惑可以回复我~
#4

Fu_hmo

请问是哪里有空白文本
2017-05-21 回复 有任何疑惑可以回复我~
#5

我要SSR 回复 Fu_hmo

你的回车(换行符)就是空白文本
2017-05-23 回复 有任何疑惑可以回复我~
#6

慕丝1033313

这样写是从最后一个节点开始删除的,怎么去除空白文本啊,求指教
2017-07-09 回复 有任何疑惑可以回复我~
查看3条回复

因为,你在删除一个元素之后,content.childNodes的长度也会发生变化啊,可以尝试,修改一下判断条件,比如

content.childNodes.length!=0

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

哈噜噜呦吧啦 提问者

还是用for循环吗?还是用while?
2017-04-27 回复 有任何疑惑可以回复我~
#2

慕勒7123956 回复 哈噜噜呦吧啦 提问者

还是for循环,不过while也可以用,用while反而更好理解
2017-04-27 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

如何实现逐个删除节点?

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