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

Fermé
dev_82 Messages postés 45 Date d'inscription mercredi 24 juillet 2019 Statut Membre Dernière intervention 14 mai 2020 - 14 mai 2020 à 11:59
dev_82 Messages postés 45 Date d'inscription mercredi 24 juillet 2019 Statut Membre Dernière intervention 14 mai 2020 - 14 mai 2020 à 15:27
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);  
A voir également:

2 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
14 mai 2020 à 15:05
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...



0
dev_82 Messages postés 45 Date d'inscription mercredi 24 juillet 2019 Statut Membre Dernière intervention 14 mai 2020
14 mai 2020 à 15:15
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.
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
14 mai 2020 à 15:18
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....
0
dev_82 Messages postés 45 Date d'inscription mercredi 24 juillet 2019 Statut Membre Dernière intervention 14 mai 2020 > jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024
14 mai 2020 à 15:27
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.
0