Afficher les éléments d'un tableau avec innerHTML

Signaler
Messages postés
45
Date d'inscription
mercredi 24 juillet 2019
Statut
Membre
Dernière intervention
14 mai 2020
-
Messages postés
45
Date d'inscription
mercredi 24 juillet 2019
Statut
Membre
Dernière intervention
14 mai 2020
-
Bonjour à tous,
je souhaite comme précisé dans le titre, afficher les éléments d'un tableau un par un avec la méthode innerHTML mais cela n'affiche rien. Or, lorsque j'utilise la méthode alert(), cela m'affiche comme je le souhaite chaque élément dans des pop-up et lorsque je fais un document.write(), cela m'affiche tous les éléments du tableau.
Ainsi, je voudrais savoir comment faire pour afficher chaque élément avec innerHTML et je parcours le tableau avec une boucle forEach.
Par exemple, array[0] s'affiche puis 1 seconde après array[1] à la place puis ainsi de suite...
Merci d'avance pour vos réponses.
Voici le code.
function affiche() {
                        document.getElementById("demo").innerHTML += angle2;
                        var counter = document.getElementById("demo").innerHTML.split('/');
                        counter.forEach(function (item) {
                            //alert(item);
                            //document.getElementById("demo1").innerHTML = item;
                        });
                    }
                    setInterval(affiche, 1000);  

2 réponses

Messages postés
28958
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 juillet 2020
2 617
Bonjour,

Déjà, tu veux afficher chaque élément de ta boucle ( donc à chaque tour du foreach) UN élément (et un seul) dans ton html ?
Dans ce cas c'est bien
document.getElementById("demo1").innerHTML = item;

qu'il faut utiliser,
mais si tu veux temporiser... il faut que tu le places dans un setTimeout

Attention par contre,
Vu que tu lances ta fonction avec un
setInterval(affiche, 1000);
;
Ta fonction est relancée toutes les secondes... tu ne pourras donc pas traiter ta boucle...



Messages postés
45
Date d'inscription
mercredi 24 juillet 2019
Statut
Membre
Dernière intervention
14 mai 2020

Bonjour,
Merci de ta réponse.
En fait, je cherche à afficher le 1er élément du tableau puis le 2e puis le 3e etc, le suivant vient à la place du précédent.
Et je n'ai pas compris pourquoi je devrais temporiser avec setTimeout.
merci.
Messages postés
28958
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 juillet 2020
2 617
Et je n'ai pas compris pourquoi je devrais temporiser avec setTimeout.

Par ce que sans ça... ton script aura fini de traiter ta boucle avant même de voir le changement....
Messages postés
45
Date d'inscription
mercredi 24 juillet 2019
Statut
Membre
Dernière intervention
14 mai 2020
>
Messages postés
28958
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 juillet 2020

Ah d'accord et c'est donc pour cela que rien ne s'affiche car il y tellement de changement en 1s dans la div demo1 que l'on voit rien dans celle-ci ?
Du coup, setTimeout prend une fonction en 1er argument mais quelle serait la fonction car le contenu de cette fonction est déjà utilisé dans le forEach.