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 :

getElementsByClassName : Vérifier le résultat d'une valeur pour créer une condition


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Février 2020
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : Février 2020
    Messages : 22
    Points : 20
    Points
    20
    Par défaut getElementsByClassName : Vérifier le résultat d'une valeur pour créer une condition
    Bonjour à tous,

    Petite question, j'ai le bloc HTML suivant :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <div class="DataViewer-details card"><img alt="" src="#[FIELD('Image')]#" style="width: 120px; height: 120px; text-align:center; margin: 10px 0 10px 0;" class="fr-draggable">
        <h5><a class="title card-titre" id="pop" title="#[FIELD('Service')]#"><strong><span style="font-size: 18px;">SERVICE</span></strong></a></h5>
        <h4>
            <div class="bouton" id="wkf" style="display:bloc=k;"><a modaltitle="" pagepopup="61024f9b06f02"><button style="font-size:14px;border-radius:0px;">demander</button></a></div>
            <div class="bouton" id="wkf0" style="display:none;"><a modaltitle="" pagepopup="61024f9b06f01"><button style="font-size:14px;border-radius:0px;">demander</button></a></div>
    	<div class="dsu" id="restriction" style="display:none;">Champs libre 5</div>	
        </h4>
     
    </div>

    Ce que je souhaite faire :
    si mon champs libre 5 = 'SDAI' alors cache le bouton de l'id "wkf" et affiche le bouton de l'id = "wkf0"

    J'ai fait ce premier script
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <script type="text/javascript">      valeur = document.getElementById("restriction").innerText;
     
            if (valeur == "SDAI")
            {
                console.log("VAL : " + valeur);
                document.getElementById("wkf").style.display = "none";
                document.getElementById("wkf0").style.display = "block";
            };
     
        </script>
    Çà marche bien sauf si je souhaite faire un affichage par tuile(ou vignette), en effet il trouvera mon ID restriction un fois mais pas plus, ce qui semble logique.

    Donc je m'oriente vers une recherche par class, mais la je sèche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <script type="text/javascript">
        valeur = document.getElementsByClassName("dsu");
        console.log(valeur);
    </script>
    Voici mon inspecteur :
    Nom : 2021-08-03 15_58_51-Bureau W10 - Desktop Viewer.png
Affichages : 82
Taille : 18,3 Ko

    Ma question, comment avancer dans chaque collection pour vérifier si mon innertext= "SDAI" et afficher le bouton en conséquence

    Merci

  2. #2
    Membre expérimenté
    Homme Profil pro
    bricoleur par les mots
    Inscrit en
    Avril 2015
    Messages
    714
    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 : 714
    Points : 1 598
    Points
    1 598
    Par défaut
    jour

    utilise une boucle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <script type="text/javascript">
     
        valeur = document.getElementsByClassName("dsu");
     
    for (var i=0 ; i<valeur.length ; i++){
     
        console.log(valeur[i].innerText);
     
    }
    </script>
    Plus vite encore plus vite toujours plus vite.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Février 2020
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : Février 2020
    Messages : 22
    Points : 20
    Points
    20
    Par défaut
    Hello,

    J'avais déjà essayé ça (j'aurais du le préciser, sorry).

    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
    <script type="text/javascript">
     
    	valeur = document.getElementsByClassName("dsu");
        for (var i = 0; i < valeur.length; i++)
        {
     
            console.log(valeur[i].innerText);
            if ((valeur[i].innerText) == "SDAI")
            {
                document.getElementById("wkf").style.display = "none";
                document.getElementById("wkf0").style.display = "block";
            };
        }
     
    </script>
    Voici le résultat que j'ai du mal à comprendre :

    Nom : 2021-08-03 17_09_46-Bureau W10 - Desktop Viewer.png
Affichages : 65
Taille : 20,4 Ko

    Il me change le premier bouton, alors que la valeur qui déclenche le changement n'existe pas sur cette vignette.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Février 2020
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : Février 2020
    Messages : 22
    Points : 20
    Points
    20
    Par défaut
    Hello,

    Du coup, je me suis dit qu'en partant d'une class parent et en me baladant dans l'arbo je trouverais un autre résultat mais non, il continu de me recopier cette donner que je ne comprends pas.

    J'en suis arrivé à mettre mon déclencheur dans une même classe,

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <div class="DataViewer-details card"><img alt="" src="#[FIELD('Image')]#" style="width: 120px; height: 120px; text-align:center; margin: 10px 0 10px 0;" class="fr-draggable">
        <h5><a class="title card-titre" id="pop" title="#[FIELD('Service')]#"><strong><span style="font-size: 18px;">SERVICE</span></strong></a></h5>
        <h4>
            <div class="bouton" id="wkf" style="display:bloc=k;"><a modaltitle="" pagepopup="61024f9b06f02"><button style="font-size:14px;border-radius:0px;">demander</button></a></div>
            <div class="bouton" id="wkf0" style="display:none;"><a modaltitle="" pagepopup="61024f9b06f01"><button style="font-size:14px;border-radius:0px;">demander</button></a></div>
    	<div class="title card-titre" id="restriction" style="display:none;">Champs libre 5</div>	
        </h4>
     
    </div>

    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
    <script type="text/javascript">
        valeur = document.getElementsByClassName("title card-titre");
     
     
        for (var i = 0; i < valeur.length; i++)
        {
            console.log(valeur[i].innerText);
     
            if ((valeur[i].innerText) == "SDAI")
            {
                document.getElementById("wkf").style.display = "none";
                document.getElementById("wkf0").style.display = "block";
            };
        }
     
    </script>
    Voici mon résultat : Nom : 2021-08-03 15_58_51-Bureau W10 - Desktop Viewer.png
Affichages : 48
Taille : 5,8 Ko

    En gros :
    - a chaque vignette, il repart de la première
    - Il voit bien ma chaine de caractère qui doit déclencher ma condition.
    - Mais encore une fois, ma condition n'est appliquée que sur la première vignette

    Des idées ?

    Bonne après midi.

  5. #5
    Inactif  
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2021
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2021
    Messages : 645
    Points : 1 280
    Points
    1 280
    Par défaut
    Bonjour,

    id="pop", id="wkf", id="wkf0",...

    Un attribut id DOIT ÊTRE UNIQUE.

    Donc, si tu as PLUSIEURS "cards", tu ne peux pas utiliser les mêmes.
    C'est ce qui explique pourquoi le script ne considère que ceux de la 1ère "card"..

Discussions similaires

  1. Insérer ligne comme résultat d'une condition
    Par oyard dans le forum Excel
    Réponses: 16
    Dernier message: 09/07/2014, 09h35
  2. Réponses: 4
    Dernier message: 14/03/2014, 18h03
  3. Réponses: 1
    Dernier message: 10/11/2009, 12h59
  4. [E-03] Se référer à la date système pour créer des conditions
    Par moilou2 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 04/02/2009, 16h08

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