问答详情
源自:9-14 删除节点removeChild()

关于removeChild的问题!

<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");

var conCh=document.getElementsByTagName("h1");

for(var i=0;i<conCh.length;i++)

{

conCh.removeChild(conCh[i]);

}

}


</script>

<input type="button" value="清楚内容" onclick="clearText()" />

</body>

麻烦大家给解答下,为什么我这个代码不好使,原因是什么,新手自学麻烦说的详细点不胜感谢!

提问者:大年糕 2017-06-01 10:49

个回答

  • 月光下的微笑
    2017-06-01 13:47:33
    已采纳

    来看这个方法的公式element.removeChild(child);

          从element(元素对象)删除里面的child(节点对象);

         这是你的:conCh.removeChild(conCh[i])

    来看看你的conCh这是H1的元素集合,但是我们需要的是他的父级元素(父级元素里面包含有H1的元素集合,),也就是你这个要改为

    conCh.parentNode也就是content;(你这个conCH就没必要了)

    然后括号里面需要的是一个节点对象,但是你里面却是一个元素对象,所以需要把里面的转换为节点对象:content.childeNode[i](可以这么理解:父级元素里面的 第[i]个  子节点对象)

    我是这么理解的,


  • Hakumatsu
    2017-06-17 22:26:30

    conCh[i]是指的h1的集合中第i个元素

    conCh指的是h1组成的数组不是唯一且确定的!

    conCh.removeChild(conCh[i]);一个数组中删除它的子节点肯定没法实现

    content.removeChild(conCh[i]);这句代码可以实现,因为content是唯一的父元素div,可以删除它的某个h1节点。

  • 大年糕
    2017-06-01 14:54:39

    明白了 谢谢哈!