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 :

[DOM] Modification du style en fonction du grand-parent ?!


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Par défaut [DOM] Modification du style en fonction du grand-parent ?!
    Bonjour à tous,

    je construis un tableau dynamiquement grâce à du J2EE, je ne connais donc pas le contenu qu'il aura !

    Je souhaite pourtant changer la couleur du contenu des TDs ayant pour "class" : "txt" et ayant pour grand-parent une balise "TBODY".

    J'ai fait des tests, à priori mon code est bon, mais en fait non ... ça fonctionne pas !

    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
    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
    [...]
    <script type="text/javascript">
    	function modifStyle() {
            var i, oTD;
            var allTDs = document.getElementsByTagName("td");
            var n = allTDs.length;
     
            for (i=0 ; i<n ; i++)
            {
                oTD = allTDs[i];
     
                var tagPere = oTD.parentElement;
                var tagGdPere = tagPere.parentElement;
     
                if (oTD.className == "txt" && tagGdPere.nodeName == "TBODY")
                {
                	switch (oTD.innerHTML)
    				{
    					case "2":
    					  oTD.style.color = "navy";
    					  break;
    					case "3":
    					  oTD.style.color = "purple";
    					  break;
    					case "4":
    					  oTD.style.color = "#E72100";
    					  break;
    					case "5":
    					  oTD.style.color = "#ED7F10";
    					  break;
    					case "6":
    					  oTD.style.color = "#FCD21C";
    					  break;
    					case "7":
    					  oTD.style.color = "#008B00";
    					  break;
    					default:
    					  oTD.style.color = "black";
    				}
     
                    oTD.style.fontWeight = "bold";
                }
            }
    	}
    </script>
    </head>
    <body onload="modifStyle()">
    [...]
    Résultat : Pas d'erreur JS et rien n'est modifié dans ma page !


    Gôm

  2. #2
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Par défaut
    En fait (problème de cache ie ...), cela modifie bien tous mes éléments, mais sans prendre en compte que le grand-parent doit être une balise "TBODY" !

    Concrètement, tous les <TD class="txt" ...> où est présent un chiffre, compris entre 2 et 6 inclus, sont modifiés !

  3. #3
    Membre chevronné Avatar de yjuliet
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Août 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 362
    Par défaut
    t'as pas essayé de faire ça diectement dans ta feuille de style css ??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    tbody>tr>td.txt { ... }

  4. #4
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Par défaut
    Impossible !

    Je ne vais pas faire un Switch Case en CSS ! Si ?


    De plus, j'ai d'autres pages correspondant à cette class et je ne veux pas que leur contenu soit coloré !

  5. #5
    Membre chevronné Avatar de yjuliet
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Août 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 362
    Par défaut
    je te dis pas de faire un switch-case, mais simplement en définissant un chemin unique (en utilisant un id ou une classe spécifique pour le "grand parent" concerné, tu évites tout problème de scriptage, tu n'as qu'une recherche dans un arbre à l'aide d'instructions CSS ...

  6. #6
    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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    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 !

  7. #7
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    bonjour,

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    tagGdPere.nodeName == "TBODY"
    es-tu sûr que la valeur retournée par nodeName est en majuscules ? Sinon :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    tagGdPere.nodeName.toUpperCase() == "TBODY"

    ou essaye de voir avec le tagName :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    tagGdPere.tagName.toLowerCase() == "tbody"

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

Discussions similaires

  1. [DOM] Modification du HTML via une fonction JS ?
    Par ghohm dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/11/2007, 16h22
  2. [DOM] Modification d'un style CSS (Déclaration attendue, mais ..)
    Par d-Rek dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 02/10/2007, 16h48
  3. Recalculer une feuille Excel après une modif de style
    Par ThierryAIM dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 09/03/2007, 20h55
  4. [DOM] modification d'un XML ?
    Par ghohm dans le forum Bibliothèques et frameworks
    Réponses: 15
    Dernier message: 13/07/2006, 15h31
  5. [CSS] Créer un style en fonction du div parent
    Par titoumimi dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 28/02/2006, 09h33

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