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 :

Mettre une ligne de HTML dans une variable


Sujet :

JavaScript

  1. #1
    Membre à l'essai Avatar de Zephire
    Homme Profil pro
    en devenir
    Inscrit en
    Janvier 2018
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : en devenir

    Informations forums :
    Inscription : Janvier 2018
    Messages : 23
    Points : 19
    Points
    19
    Par défaut Mettre une ligne de HTML dans une variable
    Salut, je débute en Javascript.
    En Javascript pur (pas de jQuery !) , est-il possible de mettre une ligne complète de HTML dans une variable ?
    Voici ce que je veux faire, afin d'obtenir une variable nommée "plus" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var plus = "<span class='icon is-medium'><i class='far fa-plus-square'></i></span>\n";
    Merci

  2. #2
    Expert confirmé Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 529
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 529
    Points : 4 740
    Points
    4 740
    Par défaut
    jQuery est une librairie écrite en JavaScript,
    donc tout ce que peut faire jQuery est forcément faisable en JavaScript.
    «La pluralité des voix n'est pas une preuve, pour les vérités malaisées à découvrir, tant il est bien plus vraisemblable qu'un homme seul les ait rencontrées que tout un peuple.» [ René Descartes ] - Discours de la méthode

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    Deux petites remarques à propose de ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var plus = "<span class='icon is-medium'><i class='far fa-plus-square'></i></span>\n";
    A mon avis il est préférable Je te conseille d'inverser plutot ton ordre de quotes pour des raisons de lisibilité

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var plus = '<span class="icon is-medium"><i class="far fa-plus-square"></i></span>\n';

    Deuxième petit point \n en HTML est inutile => <br/>
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  4. #4
    Membre à l'essai Avatar de Zephire
    Homme Profil pro
    en devenir
    Inscrit en
    Janvier 2018
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : en devenir

    Informations forums :
    Inscription : Janvier 2018
    Messages : 23
    Points : 19
    Points
    19
    Par défaut
    Merci pour vos réponses. Je précise que j'apprends surtout le PHP et Symfony pour mon diplôme. Mais il faut bien sûr que j'apprenne un minimum de Javascript pour prétendre à un poste.

    Mon formateur m'a répondu qu'en pur Javascript il faut construire un DOMElement et ne pas procéder comme dans mon extrait de code.

    Qu'en pensez-vous ?

  5. #5
    Expert confirmé Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 529
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 529
    Points : 4 740
    Points
    4 740
    Par défaut
    Citation Envoyé par Zephire Voir le message
    Qu'en pensez-vous ?
    que t'es completement à coté de ce que te demande ton prof

    https://developer.mozilla.org/fr/doc.../createElement

    https://developer.mozilla.org/fr/doc...ment/classList
    «La pluralité des voix n'est pas une preuve, pour les vérités malaisées à découvrir, tant il est bien plus vraisemblable qu'un homme seul les ait rencontrées que tout un peuple.» [ René Descartes ] - Discours de la méthode

  6. #6
    Invité
    Invité(e)
    Par défaut
    +1 psychadelic

    (bien qu'ici, passer par la création d'éléments du DOM est, à mon avis, "inutilement" fastidieux pour "si peu" ).


    Mais si je reviens sur la remarque de SpaceFrog, il faut écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var plus = '<span class="icon is-medium"><i class="far fa-plus-square"></i></span>' . "\n";
    "\n" fait un passage à la ligne dans le code (pas à l'affichage). Ça peut améliorer la lisibilité du code *.
    Et ici, les " sont obligatoires.


    (* quoique j'en vois mal l'intérêt après un <span> !)

  7. #7
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    Citation Envoyé par Zephire
    Mon formateur m'a répondu qu'en pur Javascript il faut construire un DOMElement et ne pas procéder comme dans mon extrait de code.

    Qu'en pensez-vous ?
    ton formateur a raison sur le fond, je pense que tu utilises innerHTML, il est toujours préférable d'utiliser les méthodes dédiées du DOM pour construire, sans dommage collatéral éventuel, de nouveaux éléments.

    Donc plutôt que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var html = '<span class="icon is-medium"><i class="far fa-plus-square"></i></span>';
    var oDest = document.getElementById("conteneur");
    oDest.innerHTML = html;
    il est préférable d'écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var oDest = document.getElementById("conteneur");
    var oSpan = document.createElement("SPAN");
    var oElem = document.createElement("I");
    // affectation directe des classes sur les objets javascript
    oSpan.className = "icon is-medium";
    oElem.className = "far fa-plus-square";
    // ajout aux parents en remontant l'arbre
    oSpan.appendChild(oElem);
    oDest.appendChild(oSpan);
    c'est bien plus verbeux mais accessoirement plus clair.

    Il existe une autre méthode, ma foi assez peu utilisée, la méthode insertAdjacentHTML qui est une extension de l'interface Element.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var html = '<span class="icon is-medium"><i class="far fa-plus-square"></i></span>';
    var oDest = document.getElementById("conteneur");
    oDest.insertAdjacentHTML("beforeend", html); // équivalent à appendChild
    et pour le coup tu respectes les consignes de ton formateur.

  8. #8
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    Juste pour être exhaustif, je rajoute qu’il existe aussi la méthode insertAdjacentElement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var oDest = document.getElementById("conteneur");
    var oSpan = document.createElement("SPAN");
    var oElem = document.createElement("I");
    // affectation directe des classes sur les objets javascript
    oSpan.className = "icon is-medium";
    oElem.className = "far fa-plus-square";
    // ajout aux parents en remontant l'arbre
    oSpan.appendChild(oElem);
     
    oDest.insertAdjacentElement("beforeend", oSpan);
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/09/2011, 15h45
  2. Obtenir la sortie d'une ligne de commande dans un variable java
    Par Dalidou dans le forum Général Java
    Réponses: 2
    Dernier message: 06/04/2009, 09h17
  3. [HTML] Insérer une ligne de tirets dans un select
    Par Poutchou dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 10/03/2006, 12h30
  4. selectionner une ligne au hasard dans une table
    Par dark_vidor dans le forum Requêtes
    Réponses: 2
    Dernier message: 27/06/2005, 12h01
  5. Comment mettre des lignes de couleur dans une TCheckListBox ?
    Par Isa31 dans le forum Composants VCL
    Réponses: 9
    Dernier message: 31/03/2005, 08h40

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