我这样写第二个h1元素第一次执行删不掉,是为什么

来源:9-14 删除节点removeChild()

fortunate蚂蚁

2018-11-28 14:29

<!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]);

      }

  }

}

</script>


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

</body>

</html>


写回答 关注

1回答

  • 库米花
    2018-11-29 16:11:01
    已采纳

    这边控制台上报错“Failed to execute 'removeChild' on 'Node': parameter 1 is not of type 'Node'”,然后单独打印nodeType时,php的h1显示为3也就是#text类型。

    个人建议使用while循环

    while (content.childNodes.length > 0) {

            content.removeChild(content.firstChild);

    }

    只要有子节点,就删除第一个子节点

    嬲好

    这个方法不论有无空白节点都可以

    2019-01-16 10:22:17

    共 4 条回复 >

JavaScript进阶篇

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

468060 学习 · 21891 问题

查看课程

相似问题