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

求问为何得到的结果x.innerHTML是undefined??

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

提问者:之芭 2015-11-06 10:30

个回答

  • undeflned
    2015-11-06 10:57:16
    已采纳

    将childNodes改为children即可,childNodes包含HTML节点,所有属性,文本节点。只有HTML节点才有innerHTML

  • 慕男婶
    2015-11-06 14:50:16

    首先你要明白,chindNodes,包括各种各样的节点:元素节点(这个才是你想要的)、文本节点、注释节点

    所以,当x不是元素节点时,比如是一个文本节点,它当然没有innerHTML属性了,所以是undefined。

    建议:遍历子元素时使用children。简单快速无兼容性!!!!为什么这么多人不知道用呢?

  • 之芭
    2015-11-06 10:54:13

    其他地方就是原本的代码 没动

  • undeflned
    2015-11-06 10:45:17

    dom元素呢?请提供完整的代码