0

我正在使用此 JavaScript 代码从页面中删除几个元素,但它不起作用。当我用 Opera Dragonfly 检查代码时,它会说:

Uncaught exception: Error: WRONG_ARGUMENTS_ERR

并指向文件和函数名。

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

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

两者都body存在marginDiv于页面上。我的目标是在单击背景时使缩略图消失。

4

3 回答 3

8

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

相反,试试这个:

var remove = document.getElementById('marginDiv');
if( remove) remove.parentNode.removeChild(remove);
于 2012-05-03T14:31:09.850 回答
4

尝试

docBody.removeChild(document.getElementById("marginDiv"));
于 2012-05-03T14:31:22.597 回答
1

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

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

if(marginDiv)){
docBody.removeChild(marginDiv);
}
于 2012-05-03T14:37:29.800 回答