JavaScript removeChild不起作用

时间:2012-05-03 14:28:44

标签: javascript removechild

我正在使用此JavaScript代码从页面中删除一些元素,但它无效。当我用Opera Dragonfly检查代码时,它会说:

Uncaught exception: Error: WRONG_ARGUMENTS_ERR

并指向文件和函数名称。

奇怪的是,我在同一页面上的另一个函数中使用完全相同的代码,它可以正常工作。代码非常小而且简单:

var docBody = document.getElementById("body");
if(document.getElementById("marginDiv")){
  docBody.removeChild("marginDiv");
}

页面上存在bodymarginDiv。我的目标是在单击背景时使缩略图消失。

3 个答案:

答案 0 :(得分:7)

您正在尝试删除字符串。字符串几乎不是HTML元素。您还依赖marginDiv成为body的直接孩子,情况可能并非如此。

相反,试试这个:

var remove = document.getElementById('marginDiv');
if( remove) remove.parentNode.removeChild(remove);

答案 1 :(得分:2)

尝试

docBody.removeChild(document.getElementById("marginDiv"));

答案 2 :(得分:1)

removeChild需要对DOM元素的引用,而不是字符串。试试这个:

var docBody = document.getElementById("body");
var marginDiv = document.getElementById("marginDiv");

if(marginDiv)){
docBody.removeChild(marginDiv);
}