2015-12-12 1 views
-2

У меня возникли проблемы с использованием parent.removeChild(). Я думаю, что использую правильный синтаксис. Кто-нибудь знает, что не так?JavaScript parent.removeChild (child) не работает

var parent = document.body 
var child = document.getElementById("clueDiv") 
parent.removeChild(child); 
+1

Если это не работает, вероятно, потому, что «clueDiv» не является прямым дочерним элементом «document.body» – nanocv

ответ

2

Если это не работает, вероятно, child не ребенок document.body.

Попробуйте с:

child.parentElement.removeChild(child) 

Или, как @PaulS. сказал:

child.parentNode.removeChild(child) 
+0

Почему '.parentElement', а не' .parentNode'? –

+0

Вау, я написал то же самое в комментариях к вопросу. Upvote;) – nanocv

+0

@PaulS. Я никогда не видел случая, когда они не совпадают;) Во всяком случае, я думаю, что «parentNode», вероятно, работает в большем количестве случаев. – zvone

1

Вы можете также использовать ChildNode.remove():

var child = document.getElementById("clueDiv"); 
child.remove(); 

Это не поддерживается в Internet Explorer, но вы можете использовать polyfill:

if (!('remove' in Element.prototype)) { 
    Element.prototype.remove = function() { 
     if (this.parentNode) { 
      this.parentNode.removeChild(this); 
     } 
    }; 
} 
+1

Я хотел предупредить, что это было определено в черновике. Но ничего себе, DOM4 уже рекомендация! – Oriol

Смежные вопросы