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

新手如下问

为什么点击清除时刚开始一次没反应,第二次就一下子删了两个,随后点就是一次一个,why?

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

  {

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

  }

  // 在此完成该函数

 if(content.childNodes.length<1)

 alert("No childNodes to be delete!")

  

}

</script>


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


正在回答

1 回答

可能有两个原因,一是因为空白符也算子节点,二是因为你把0号子节点删除后后面的1号子节点往前补充成了0号子节点。你可以试着加入一个if语句判断下子节点的种类,种类为1就删除;还可以把遍历顺序改为倒序,for(var i=content.childNodes.length-1;i>=0;i--) ,你可以试一下是否能够解决。:)


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

举报

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

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

进入课程

新手如下问

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