Javascript 未捕获类型错误:未能执行';removeChild';在';节点';:参数1的类型不是';节点';

Javascript 未捕获类型错误:未能执行';removeChild';在';节点';:参数1的类型不是';节点';,javascript,Javascript,我刚刚注意到我的phpBB聊天扩展有一个问题。我最近有一些记忆问题,就是想不出来。如果有人能伸出援手,我将不胜感激 有问题的js } else if (type == 'delete') { var parent = document.getElementById('chat'); var child = document.getElementById('p' + results[0]); paren

我刚刚注意到我的phpBB聊天扩展有一个问题。我最近有一些记忆问题,就是想不出来。如果有人能伸出援手,我将不胜感激

有问题的js

            } else if (type == 'delete') {
            var parent = document.getElementById('chat');
            var child = document.getElementById('p' + results[0]);
            parent.removeChild(child);
        }

如果有人需要查看完整的js。只要问一下,我就会把它贴出来,试着在删除之前检查
子项是否存在:

} else if (type == 'delete') {
  var parent = document.getElementById('chat');
  var child = parent.getElementById('p' + results[0]);
  if (child) parent.removeChild(child);
}
是一种方法,这是错误消息告诉您的

“节点”的“removeChild”

第一个参数是
child
,错误消息告诉您它不是
节点

返回具有该id的元素(如果存在)。如果不是,则返回
null
<代码>节点
是的父接口


因为它不是一个节点,所以它是空的。因此,
child
不存在。

看起来像是帮助HerrimanCoder在我的情况下不起作用的解决方案的副本,所以我不认为它是副本。我接受你的帖子作为答案。但是,我更改的唯一一行是最后一行
if(child)parent.removeChild(child)。多谢各位much@Darin,是的,该行删除错误。另一个
var child=parent.getElementById('p'+results[0])在父级中搜索子级,而不是在整个文档中。这将提高性能,并且可能是可选的。感谢您的解释,但这一点都没有帮助。正如我在帖子中所说,我最近遇到了一些内存问题,在寻求帮助之前,我确实先使用了谷歌。我已经读过你的帖子了,但由于我的记忆问题,我无法理解。Kosh发布的内容帮助我解决了这个问题,或者至少完全停止了错误,而没有任何功能损失