JavaScript removeChild不工作

JavaScript removeChild不工作,javascript,removechild,Javascript,Removechild,我正在使用此JavaScript代码从页面中删除几个元素,但它不起作用。当我用Opera Dragonfly检查代码时,它会说: Uncaught exception: Error: WRONG_ARGUMENTS_ERR 并指向文件和函数名 奇怪的是,我在同一个页面上的另一个函数中使用了完全相同的代码,它可以正常工作。代码非常小且简单: var docBody = document.getElementById("body"); if(document.getElementById("mar

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

Uncaught exception: Error: WRONG_ARGUMENTS_ERR
并指向文件和函数名

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

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

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

您试图删除字符串。字符串几乎不是HTML元素。你还指望马金迪夫是身体的直接孩子,但事实可能并非如此

相反,请尝试以下方法:

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

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

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

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

或者你可以做document.getElementByIdmarginDiv.removeSince chrome 19我想。在DOM4中,这两个函数都是body的子函数,因为我使用以下代码创建它们:var marginDiv=document.createElementdiv;marginDiv.setAttributeid,marginDiv;docBody.margindiv;代码在另一个脚本中工作,例如,当您在按钮上单击两次时,缩略图列表将被删除并再次创建。在我使用此代码删除它之前,每当我单击按钮时,它都会创建一个新列表。如果我做错了,它难道一点也不起作用吗?对于乱七八糟的代码,我不知道如何写得干净利落这很有效。我相信其他答案也会有用,但我想我会选择这个,因为它是最短的另一个答案实际上要短得多!原始语句减去引号应该可以正常工作。。。docBody.removeChildmarginDiv;
var docBody = document.getElementById("body");
var marginDiv = document.getElementById("marginDiv");

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