Bonjour,

Voilà, j'ai un script qui génère des div (voir d'autre objets) qui apparaissent les une par dessus les autres, et ce de façon dynamique.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
div1 = document.createElement('div');
// ... spécification de proprietees pour div1 ...
window.document.body.appendChild(div1);
 
div2 = document.createElement('div');
// ... spécification de proprietees pour div2 ...
div1.appendChild(div2);
 
div3 = document.createElement('div');
// ... spécification de proprietees pour div3 ...
div2.appendChild(div3);
 
div4 = document.createElement('div');
// ... spécification de proprietees pour div4 ...
div3.appendChild(div4);
 
// etc...
Supposons maintenant que j'ai un bouton situé dans DIV4, et qu'en cliquant dessus, je veuille détruire tout ce qui se trouve (visuellement) au dessus de DIV2 inclus (donc DIV2, DIV3, DIV4 et tout ce qui vient après si y'en a d'autre)

Un 1er test avec un
Code : Sélectionner tout - Visualiser dans une fenêtre à part
div1.remocechild(div2);
ne fait disparaitre a mon grand étonnement que DIV2, et du coup, il reste DIV3 et DIV4 a l'écran... A quoi est donc maintenant lié DIV3 du coup ?

Dans l'absolue, je pourrais ne pas me poser de question écrire une fonction qui parcours récursivement l'arbres des enfants pour faire un removechild sur chacun d'eux, mais je ne comprend pas pourquoi ça n'a pas marché avec un simple removechild sur le parent. Ca ne devrait pas le déréférencer, et par voie de fait tous ses enfants avec ?

Existe t-il donc une solution plus élégante qu'une fonction récursive pour effacer un éléments et tous ses enfants ?

En vour remerciant !