Page 1 sur 1

removechild

Posté : 29 sept. 2009, 17:18
par Invité
Bonjour à tous,
j'utilise le code suivant pour supprimer le 2ème élément enfant d'un noeud "test"
<script type="text/javascript">
var target = getElementById("test")
target.removeChild(target.childNodes[1]);
</script>
ça fonctionne très bien.
Comment faire pour supprimer le 2ème enfant de cet enfant de test?
j'ai tenté ceci qui ne marche pas:

target.removeChild(target.childNodes[1].childNodes[1])


Auriez vous une idée de ce qui ne va pas?
Merci pour vos réponses

Re: removechild

Posté : 29 sept. 2009, 18:59
par Victor BRITO
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]);