Javascript错误:未捕获TypeError:无法在'Node'上执行'removeChild':参数1不是'Node'类型

时间:2017-04-10 07:58:59

标签: javascript html removechild

我有一个UI,当你按下FIGHT时,它会删除4个电流div,即FIGHT,STATUS,BLANK,BLANK2,并用新的替换它们。这适用于STATUS div除外。它会带来错误

  

“未捕获的TypeError:无法在'Node'上执行'removeChild':   参数1不是'Node'类型。“

并阻止其他div删除。当我取出删除STATUS div parent0.removeChild(status);的代码时,代码正常工作,显然除了STATUS div删除。

我完全感到困惑,因为这四个div嵌套在一个名为UI的div中,我认为错误是指STATUS不是UI的子节点的事实?情况应该不是这样。任何帮助将不胜感激。

的jsfiddle:

https://jsfiddle.net/razorleaff/abks2dvq/3/

2 个答案:

答案 0 :(得分:1)

问题是window对象有一个名为status的属性,您无法通过id访问状态元素。因此,您的代码应该是:(始终使用document.getElementById来使用id获取元素

parent0.removeChild(document.getElementById('status'));

而不是:

parent0.removeChild(status);

答案 1 :(得分:0)

这样做

parent0.removeChild(status);

是一种不好的做法,导致这样的问题, 因为状态是一个javascript保留字而不是那样做

parent0.removeChild(document.getElementById('status'));
  

定义和用法   removeChild()方法删除指定元素的指定子节点。

以Node对象的形式返回已删除的节点,如果该节点不存在,则返回null。

 Parameter | Type | Description
  node        Node    object    

必需。要删除的节点对象

Updated Fiddle here