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

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

之芭

2015-11-06 10:30

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

写回答 关注

4回答

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

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

    之芭

    非常感谢!

    2015-11-06 16:10:20

    共 1 条回复 >

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

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

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

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

    Yilia要... 回复慕男婶

    谢谢,我懂了。可能因为跳过一些元素,所以只有7个undefined.元旦快乐~

    2015-12-31 18:13:07

    共 9 条回复 >

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

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

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

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

JavaScript进阶篇

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

468061 学习 · 21891 问题

查看课程

相似问题