2012-05-03 8 views
0

このJavaScriptコードを使用して、ページからいくつかの要素を削除していますが、機能していません。 Opera Dragonflyでコードを調べると、次のように表示されます。JavaScript removeChildが機能しない

Uncaught exception: Error: WRONG_ARGUMENTS_ERR 

そして、ファイルと関数名を指しています。

奇妙なことは、同じページの別の機能で全く同じコードを使用していることです。問題なく動作します。コードは非常に小さく、簡単です:

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

bodymarginDivの両方がページ上に存在します。私の目標は、サムネイルが背景をクリックするとサムネイルが消えるようにすることです。

答えて

2

は、DOM要素への参照ではなく、文字列を必要removeChild

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

これはうまくいった。私は他の答えもうまくいくと確信していますが、私はこれが最短だからこれを選択すると思います。 :) –

+0

他の答えは、実際にはかなり短くなっています! – Amberlamps

+0

元のステートメントから引用符を引いたものは正常に動作するはずです... docBody.removeChild(marginDiv); – user6245342

7

文字列を削除しようとしています。文字列はほとんどHTML要素ではありません。 bodyの直接の子であるmarginDivにも依存していますが、そうでない場合もあります。

代わりに、これを試してみてください。

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

それとも、 'のdocument.getElementById( "marginDiv")を行うことができますが(削除)' – Raynos

+0

@Raynos以来? –

+0

クロム19年だと思います。 DOM4にあります – Raynos

1

を試してみてください。これ試してみてください:。

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

if(marginDiv)){ 
docBody.removeChild(marginDiv); 
} 
関連する問題