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

dev_82 Messages postés 45 Date d'inscription   Statut Membre Dernière intervention   -  
dev_82 Messages postés 45 Date d'inscription   Statut Membre Dernière intervention   -
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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   Statut Membre Dernière intervention  
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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   Statut Membre Dernière intervention   > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
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