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

为什么结果是这个?

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

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

      document.write("删除的节点为:"+x.innerHTML+"<br>");

      

  }

  // 在此完成该函数

  

  

}

</script>


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




</body>

</html>

 删除的节点为:undefined
删除的节点为:undefined
删除的节点为:undefined
删除的节点为:undefined
删除的节点为:undefined
删除的节点为:undefined

正在回答

2 回答

function clearText() {

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

  for(var i=1;i<content.childNodes.length;++i){  

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

document.write("删除的节点为:"+x.innerHTML+"<br>");

  }

}

改成这样就可以了。为什么下标是1,可能是因为浏览器把一些看不到的元素也当成了子节点;可以alert(content.childNodes.length),看一下长度,会发现比你想像的多了很多

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

DOMOHAHA 提问者

非常感谢!
2016-02-13 回复 有任何疑惑可以回复我~

function clearText() {
  var content=document.getElementById("content");
  // 在此完成该函数
  var childs=content.childNodes;
  for(var i=0;i<=childs.length;i++){
      if(childs[i].nodeType!=1){continue;}else{
      content.removeChild(childs[i]);
      }
  }

//要考虑到兼容性,斜体

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

举报

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

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

进入课程

为什么结果是这个?

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