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

求问为何得到的结果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);} }

正在回答

4 回答

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

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

之芭 提问者

非常感谢!
2015-11-06 回复 有任何疑惑可以回复我~

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

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

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

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

Yilia要多读书

女神,我也遇到同样的问题。为什么运行结果全是7个undefined.理论上不应该是undefined html undefined javascript undefined java undefined ?因为我感觉他会自动识别元素节点啊?
2015-12-30 回复 有任何疑惑可以回复我~
#2

慕男婶 回复 Yilia要多读书

请使用children来遍历
2015-12-31 回复 有任何疑惑可以回复我~
#3

Yilia要多读书 回复 慕男婶

我造啊~遍历结果是 html javascript java,我知道children会出现正确结果 我想知道用childNodes 结果为什么不是undefined html undefined javascript undefined java undefined 。
2015-12-31 回复 有任何疑惑可以回复我~
#4

慕男婶 回复 Yilia要多读书

代码贴一下
2015-12-31 回复 有任何疑惑可以回复我~
#5

Yilia要多读书

只能贴300字,其他地方一样的。麻烦了~ <script type="text/javascript"> function clearText() { var content=document.getElementById("content"); // 在此完成该函数 for(i=0;i<content.childNodes.length;i++){ var x=content.removeChild(content.childNodes[i]); document.write("删除节点内容"+ x.innerHTML) } } </script>
2015-12-31 回复 有任何疑惑可以回复我~
#6

慕男婶 回复 Yilia要多读书

function clearText() { var content=document.getElementById("content"); for(i=0;i<content.childNodes.length;i++){ var x=content.removeChild(content.childNodes[i--]); document.write("删除节点内容 "+ x.innerHTML +"<br>") } }
2015-12-31 回复 有任何疑惑可以回复我~
#7

Yilia要多读书 回复 慕男婶

我就想知道为啥?我承认这样对。我想知道原理~麻烦男神了
2015-12-31 回复 有任何疑惑可以回复我~
#8

慕男婶 回复 Yilia要多读书

你删除元素之后,少了一个childNode,所以需要计数变量 i的值减1,否则会跳过一些元素。这是一个常见的逻辑上的错误。。遍历删除数组时,会出现这种问题。 第二:是会出现undefined的,我不知道你为什么问 “结果为什么不是undefined html undefined javascript undefined java undefined”
2015-12-31 回复 有任何疑惑可以回复我~
#9

Yilia要多读书 回复 慕男婶

谢谢,我懂了。可能因为跳过一些元素,所以只有7个undefined.元旦快乐~
2015-12-31 回复 有任何疑惑可以回复我~
查看6条回复

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

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

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

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

举报

0/150
提交
取消

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

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