Suppression de l'élément par id

Lorsque vous supprimez un élément avec le JavaScript standard, vous devez d'abord passer par son parent :

var element = document.getElementById("element-id");
element.parentNode.removeChild(element);

Le fait de devoir passer d'abord par le nœud parent me semble un peu étrange. Y a-t-il une raison pour laquelle JavaScript fonctionne de cette façon ?

Vous pourriez créer une fonction remove pour ne pas avoir à y penser à chaque fois :

function removeElement(id) {
    var elem = document.getElementById(id);
    return elem.parentNode.removeChild(elem);
}
Commentaires (10)

[C'est ce que le DOM supporte][1]. Cherchez dans cette page les mots "remove" ou "delete" et removeChild est le seul qui supprime un nœud.

[1] : https://developer.mozilla.org/en-US/docs/Web/API/element#Methods "Référence DOM Gecko - méthodes des éléments".

Commentaires (5)

D'après ce que j'ai compris, la suppression directe d'un nœud ne fonctionne pas dans Firefox, mais uniquement dans Internet Explorer. Donc, pour supporter Firefox, vous devez aller jusqu'au parent pour supprimer son enfant.

Réf. : http://chiragrdarji.wordpress.com/2007/03/16/removedelete-element-from-page-using-javascript-working-in-firefoxieopera/

Commentaires (1)