par
Victor BRITO » 29 sept. 2009, 18:59
Si tu exécutes dans l'ordre suivant :
Code : Tout sélectionner
var target = getElementById("test");
target.removeChild(target.childNodes[1]);
target.removeChild(target.childNodes[1].childNodes[1]);
il est normal que la dernière ligne de code soit vouée à l'échec, puisque, à défaut de ne rien supprimer (si elle ne rencontre aucun nœud enfant dans la position indiquée par l'indice), elle supprime le deuxième nœud enfant du nœud enfant de ton élément
qui était en troisième position avant la suppression de son nœud frère précédent.
Le mieux est d'inverser l'ordre de suppression, de façon à ce qu'on supprime d'abord les nœuds du niveau le plus bas, en remontant vers le premier niveau. De plus, il faut descendre dans l'arborescence jusqu'au nœud parent du nœud à supprimer.
Code : Tout sélectionner
var target = getElementById("test");
target.childNodes[1].removeChild(target.childNodes[1].childNodes[1]);
target.removeChild(target.childNodes[1]);
Si tu exécutes dans l'ordre suivant :
[code]var target = getElementById("test");
target.removeChild(target.childNodes[1]);
target.removeChild(target.childNodes[1].childNodes[1]);[/code]
il est normal que la dernière ligne de code soit vouée à l'échec, puisque, à défaut de ne rien supprimer (si elle ne rencontre aucun nœud enfant dans la position indiquée par l'indice), elle supprime le deuxième nœud enfant du nœud enfant de ton élément [i]qui était en troisième position avant la suppression de son nœud frère précédent[/i].
Le mieux est d'inverser l'ordre de suppression, de façon à ce qu'on supprime d'abord les nœuds du niveau le plus bas, en remontant vers le premier niveau. De plus, il faut descendre dans l'arborescence jusqu'au nœud parent du nœud à supprimer.
[code]var target = getElementById("test");
target.childNodes[1].removeChild(target.childNodes[1].childNodes[1]);
target.removeChild(target.childNodes[1]);[/code]