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 :

Incorporer des variables dans un code javasript


Sujet :

JavaScript

  1. #1
    Membre habitué

    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2020
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Février 2020
    Messages : 167
    Points : 162
    Points
    162
    Par défaut Incorporer des variables dans un code javasript
    bonjour à tous,

    je désire, grâce à un menu opérationnel, présenter une liste de leçons, cliquables par un lien.
    J'ai réalisé cela en html et ccs. cela fonctionne mais je m'aperçois que le code est pratiquement identique pour chaque leçon. En fait, la structure et la mise en forme sont identiques pour chaque leçon, seuls changent les titres, l'entier "i" et les liens.
    j'ai donc fait un lien générique en javascript que je souhaite faire évoluer dans une boucle avec l'entier "i":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    // ATTENTION UTILISER LES CARACTERES BACKTICK DE WINDOWS : ALTGR + TOUCHE 7 DU CLAVEIR ALPHANUMERIQUE
          const mon_test =       
                      ` <a href=ref>
                            <div class="libellé change fin" onmouseenter =  "show_vignette(i)" onmouseleave=" kill_vignette()">
                                  titre
                            </div>
                      </a>`
     
          document.querySelector(".sec .nav3").insertAdjacentHTML("beforeend", mon_test);
    Cela fonctionne uniquement en interprétant l'ensemble comme une chaine, ce qui semble hélas vrai, et rien ne peut être indexé à un paramètre.
    En effet, mon "i" est tout le temps interprété comme une lettre "i" et non comme une variable dans une chaine.
    De plus le "titre" est interprété comme la chaine contenant "titre" et non comme une variable que je veux faire évoluer, tout comme i, pour construire un lien spécifique à chaque passage d'une boucle.

    Quelle est l'astuce pour intégrer des variables, qui seront interprétées comme telles, et non comme des simples mots invariables dans mon code??

    Merci à ceux qui prendront la peine de m'aiguiller un peu.....

  2. #2
    Membre expérimenté
    Homme Profil pro
    bricoleur par les mots
    Inscrit en
    Avril 2015
    Messages
    715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : bricoleur par les mots
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2015
    Messages : 715
    Points : 1 600
    Points
    1 600
    Par défaut
    jour

    il faut faire une concaténation

    remplace i par ${i}
    Plus vite encore plus vite toujours plus vite.

  3. #3
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    pour créer des balises, vous pouvez utiliser cela :
    https://developer.mozilla.org/fr/doc.../createElement

    cela vous permet d'attacher les évènements dans le code comme cela par exemple :
    Code html : 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="UTF-8"/>
    	<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
    </head>
    <body>
     
    <div id="contenu"></div>
     
    <script>
    "use strict";
     
    console.clear();
     
     
    const elements = [
            {
                    "code" : "element1",
                    "libelle" : "Titre <1er> élément",
                    "href" : "https://lien1",
            },
            {
                    "code" : "element2",
                    "libelle" : "Titre 2e élément",
                    "href" : "https://lien2",
            },
            
    ];
     
    const div_contenu = document.getElementById("contenu");
     
     
    elements.forEach(element => {
            
            // création de la balise du titre
            const titre = document.createElement("div");
            titre.classList.add(element["code"]);
            titre.textContent = element["libelle"]
            
            // création de la balise du lien
            const lien = document.createElement("a");
            lien.setAttribute("href", element["href"]);
            
            
            // gestion des évènements de la balise du lien
            
            lien.addEventListener("mouseenter", e => {
                    
                    console.log("entrée " + element["code"]);
                    
                    
            });
            
            lien.addEventListener("mouseleave", e => {
                    
                    console.log("sortie " + element["code"]);
                    
                    
            });
            
            
            // ajout des balises à leurs parents
            lien.appendChild(titre);
            div_contenu.appendChild(lien);
            
            
    });
     
     
    </script>
     
     
    </body>
     
    </html>

  4. #4
    Membre habitué

    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2020
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Février 2020
    Messages : 167
    Points : 162
    Points
    162
    Par défaut Merci!
    Merci à tous les deux pour vos propositions, cela m'a beaucoup aidé à avancer!
    A la prochaine, pour d'autres interrogations sur javascript que je découvre peu à peu...

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

Discussions similaires

  1. Visibilité des variables dans le code généré par le GUIDE
    Par salseropom dans le forum Interfaces Graphiques
    Réponses: 6
    Dernier message: 09/10/2007, 08h50
  2. Réponses: 5
    Dernier message: 21/10/2005, 11h48
  3. [vb.net] utilisation d'une variable dans le code
    Par arnolem dans le forum Windows Forms
    Réponses: 9
    Dernier message: 30/09/2005, 19h22
  4. [AS2] déclarer des variables dans une fonction
    Par ooyeah dans le forum ActionScript 1 & ActionScript 2
    Réponses: 12
    Dernier message: 02/08/2005, 12h50

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