我有一个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/
答案 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
必需。要删除的节点对象