Javascript removeChild函数返回TypeError:值不是对象

Javascript removeChild function returning TypeError: Value not an object

本文关键字:对象 TypeError removeChild 函数 返回 Javascript      更新时间:2023-09-26

我在javascript中创建了一个函数,检查ID为#stage的div元素是否有任何子节点,如果有,则在调用该函数时删除它们。

当我启动网站时,Firebug返回一个错误,它是这样的:TypeError: Value不是object.

这是我的代码:javascript中变量阶段的声明:
var stage = document.querySelector("#stage");

给出错误的javascript函数的一部分:

if (stage.hasChildNodes()) {
    for (var f1=0; f1<ROWS * COLUMNS; f1++) {
        stage.removeChild(stage.firstChild);
    }
}
HTML代码:

<body>
    <div id="stage">
    </div>
    <script src="code.js">
    </script>
</body>

我想删除ID为"stage"的子节点

请帮我解决这个问题。如果你需要更多关于我的问题的信息,请问。谢谢。

如果要删除childNodes,则使用while循环更简单

var parentElement = document.getElementById('stage');
while (parentElement.hasChildNodes()) {
   parentElement.removeChild(parentElement.lastChild);
} 

我猜,你正在得到一个错误,因为,你只是运行你的for循环与一个条件不匹配的子节点计数。因此,有可能在父元素中获得第一个子元素,而父元素实际上没有任何子元素。因此,父母。FirstChild将返回null。其实父母。removechild需要一个DOM对象,但您的代码将为该对象提供null。这可能是你的问题的一个可能原因。试试这个,

while(stage.hasChildNodes()) { 
  stage.removeChild( stage.childNodes[0] );
}