IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Boucle mettant un tableau sous forme de liste avec Innerhtml


Sujet :

JavaScript

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2016
    Messages : 40
    Points : 54
    Points
    54
    Par défaut Boucle mettant un tableau sous forme de liste avec Innerhtml
    Bonjour,

    Je me posai une question concernant Innerhtml, en ecrivant une fonction qui permette de mettre un tableau sous forme de liste <li> dans ma page html,
    j'ai constater qu'en l'apellant a plusieurs reprises, les elements du tableau se mettaient les uns a la suite des autres dans cette liste.

    En utilisant innerhtml et en declarant une variable liste qui est lie a mon id dans l'html, il n'y a pas ce probleme.

    Je ne comprends pas ou la liste est efface par la fonction si je l apelle a plusieures reprises....

    Et dans le cas ou je n'utilise pas innerhtml je ne comprends pas pourquoi cette meme liste est conservee cette fois ci ...

    Je vous mets le code sans innerhtml (qui n'efface pas la liste d'un appel a un autre) :

    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
     
    tableau = ["Bob", "Julien", "Roger"];
     
     
    function afficherListe() {
     
        elements = "";
     
        for (i = 0; i < tableau.length; i++) {
            elements += "<li>" + tableau[i] + "</li>";
        }
     
        document.write(elements);
    }
     
     
    afficherListe();

    Et voici le code avec innerhtml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $liste = document.getElementById("liste");
    tableau = ["Bob", "Julien", "Roger"];
     
    function afficherListe() {
        elements = "";
        for (i = 0; i < tableau.length; i++) {
            elements += "<li>" + tableau[i] + "</li>";
        }
        $liste.innerHTML = elements;
    }
     
    afficherListe();

  2. #2
    Membre éclairé Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Points : 831
    Points
    831
    Par défaut
    Bonjour,

    Avec document.write(), tu écris systématiquement ta liste elements et ce autant de fois que tu appelles ta fonction.
    En revanche avec le innerHTML, tu remplaces par elements à chaque fois le html contenu dans ton bloc d'identifiant liste/

    micetf

  3. #3
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 120
    Points : 44 904
    Points
    44 904
    Par défaut
    Bonour,
    je t'engage à lire ce billet écrit par Bovino
    Comprendre document.write() en JavaScript.

    Dans ton cas oublie purement et simplement cette méthode pour utiliser les méthodes du DOM, un peu plus évoluées qu'un simple innerHTML, même si cette propriété reste très utilisée et pratique.

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2016
    Messages : 40
    Points : 54
    Points
    54
    Par défaut
    Merci a vous deux, je comprends mieux maintenant.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 18
    Dernier message: 14/09/2015, 19h22
  2. Réaliser un tableau sous sas sous forme de liste
    Par poupounne56 dans le forum Débutez
    Réponses: 2
    Dernier message: 08/06/2012, 08h13
  3. [MySQL] Récupérer les données sous forme de liste déroulante
    Par loopback dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 26/12/2007, 16h10
  4. Action de menu sous forme de liste
    Par frog43 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 11/12/2007, 13h33
  5. afficher des données sous forme de liste
    Par yannick9 dans le forum VBA Access
    Réponses: 4
    Dernier message: 02/08/2007, 14h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo