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 :

Impossible de changer le style depuis JavaScript


Sujet :

JavaScript

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 89
    Points : 86
    Points
    86
    Par défaut Impossible de changer le style depuis JavaScript
    Bonjour,

    J'ai un petit soucis de CSS je suppose : j'ai une liste <ul> composé de plusieurs <li>.

    Au départ, ma liste ressemble à ceci :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <ul id="sideFeatures" style="height:350px; overflow-x:hidden; overflow-y:scroll;">
        <li class="draggableItem" draggable="true" idfeature="17">Item 1 </li>
    </ul>

    Puis, depuis JavaScript, j'ajoute des <li> dans ma liste, comme ceci :
    Code javascript : 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
    function completeListSlideTab(dico, container /* ul */){
        var doctype = document.implementation.createDocumentType('xml', '', '');
        var domxml = document.implementation.createDocument('', 'xml', doctype);
        var i = 0;
        var currentLi = undefined;
        for (i = 0; i < dico.features.length; i++){
            currentLi = domxml.createElement("li");
            currentLi.setAttribute("class", "draggableItem");
            // same thing as above.. currentLi.className = "draggableItem";
            currentLi.setAttribute("draggable", "true");        
            currentLi.setAttribute("idFeature", dico.features[i].id);
            // currentLi.setAttribute("id", "li" + i);
            currentLi.textContent = dico.features[i].name;
            container.appendChild(currentLi.cloneNode(true));
            //<li class="draggableItem" draggable="true">Item 1
        }
    }

    Cette fonction est appelée depuis mon HTML, et j'obtiens bien un <ul> avec plusieurs <li> (comme souhaité).
    Cependant, le style CSS n'est pas appliqué à mes <li> tout juste créés en JavaScript. Je me retrouve donc avec une <li> (celle créée depuis le HTML) avec un beau style, et les autres sans style du tout..

    (voila le code que j'obtiens pour mon élément <ul> :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <ul id="sideFeatures" style="height:350px; overflow-x:hidden; overflow-y:scroll;">
      <li class="draggableItem" draggable="true" idfeature="17">Item 1 </li>
      <li class="draggableItem" draggable="true" idFeature="idCF1" id="li0">CF1</li>
      <li class="draggableItem" draggable="true" idFeature="idCF2" id="li1">CF2</li>
      <li class="draggableItem" draggable="true" idFeature="idCF3" id="li2">CF3</li>
      <li class="draggableItem" draggable="true" idFeature="idCF4" id="li3">CF4</li>
      <li class="draggableItem" draggable="true" idFeature="idCF5" id="li4">CF5</li>
    </ul>

    Je ne comprends pas pk le style n'est pas appliqué aux autres <li> ... Si qqun a une idée, je suis grandement preneur

    Bonnes fêtes de fin d'année à tous, et merci d'avance pour votre aide,

    G.S

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Mais c'est pas du tout comme ça qu'on ajoute des éléments dans une page !

    Il ne faut absolument pas créer un nouveau document avec un nouveau doctype, il suffit de créer les éléments de liste (createElement()) puis de les insérer dans le document actuel (appendChild()).

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 89
    Points : 86
    Points
    86
    Par défaut
    ça fonctionne à merveille !! .. Ma question serait maintenant de savoir à quoi sert le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      var doctype = document.implementation.createDocumentType('xml', '', '');
        var domxml = document.implementation.createDocument('', 'xml', doctype);
    J'avais trouvé ça sur un forum qqe part et j'avais utilisé ces lignes là, sans doute à mauvais escient..

    Merci beaucoup Bovino !

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Comme je te l'ai dit, ça sert à créer un nouveau document (avec son doctype), or une page HTML correspond à un unique document (si on ne prend pas en compte les cadres intégrés ou iframe).
    Ces méthodes servent essentiellement au DOM XML, donc à créer des documents XML. En Web, on ne s'en sert que rarement (pour ma part, je ne les ai jamais utilisées).

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

Discussions similaires

  1. impossible de changer le style du LineDataPoint
    Par Golzinne dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 20/04/2011, 09h42
  2. [Javascript & CSS] Changer un style complet
    Par hedgehog dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 26/03/2008, 11h02
  3. [JavaScript] [SRC] Changer de feuilles de style en Javascript
    Par troumad dans le forum Contribuez
    Réponses: 4
    Dernier message: 04/02/2008, 14h11
  4. changer le style d'un bouton submit avec du javascript
    Par ipeteivince dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 08/08/2006, 15h44
  5. Changer le style en JavaScript [besoin d'aide]
    Par maximenet dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 13/09/2005, 17h21

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