2012-05-03 3 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"); 
} 

Оба body и marginDiv существуют на этой странице. Моя цель состоит в том, чтобы уменьшить количество эскизов, когда вы нажимаете на фон.

ответ

2

Попробуйте

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

Это сработало. Я уверен, что другие ответы тоже будут работать, но я думаю, что я выберу это, потому что он самый короткий. :) –

+0

Другой ответ на самом деле намного короче! – Amberlamps

+0

Оригинальное заявление минус кавычки должно работать нормально ... docBody.removeChild (marginDiv); – user6245342

7

Вы пытаетесь удалить строку. Строка вряд ли является элементом HTML. Вы также полагаетесь на marginDiv, являющийся прямым потомком body, что может и не быть.

Вместо этого, попробуйте следующее:

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

Или вы можете сделать 'document.getElementById ("marginDiv") удалить()' – Raynos

+0

@Raynos Так когда.? –

+0

Поскольку хром 19 думаю. Это в DOM4 – Raynos

1

removeChild нужна ссылка на DOM элемент, а не строка. Попробуйте это:

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

if(marginDiv)){ 
docBody.removeChild(marginDiv); 
} 
Смежные вопросы