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 + condition innerHTML


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    Assistant ingénieur en ressources documentaires
    Inscrit en
    Novembre 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Assistant ingénieur en ressources documentaires
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2014
    Messages : 22
    Points : 18
    Points
    18
    Par défaut getElementsByClassName + condition innerHTML
    Bonsoir!

    Je pars d'une fonction qui tourne bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function cacher2() {
    var 
    div2 = document.getElementsByClassName("test");
    for(var i=0;i<div2.length;i++) 
      {
        div2[i].style.display='none';
      }
     };
    Toutes les div correspondantes sont bien masquées.

    Mais j'aurais besoin d'en afficher certaines selon leur contenu, du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      if (div2.innerHTML="HELLO") 
      {
        div2.style.display='block';
      };
    Je n'arrive pas à compiler les deux...

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Pour :

    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
    <div class="test">
      <p>Bonjour</p>
    </div>
     
    <div class="test">
      <p>Bonjour = Hello</p>
    </div>
     
    <div class="test">
      <p>Hello = Bonjour</p>
    </div>
     
    <div class="test">
      <p>Hello</p>
    </div>

    Exemple avec textContent :

    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 cacher2( str ){
        var
          div2 = document.getElementsByClassName( "test" ),
          elem;
     
        for ( var i = 0; i < div2.length; i++ ){
          elem = div2[i];
     
          if ( elem.textContent.trim() != str ){
            elem.style.display = 'none';
          }
        }
      }
     
      setTimeout( function(){
        cacher2( 'Bonjour = Hello' );
      }, 3000 );

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Membre à l'essai
    Homme Profil pro
    Assistant ingénieur en ressources documentaires
    Inscrit en
    Novembre 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Assistant ingénieur en ressources documentaires
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2014
    Messages : 22
    Points : 18
    Points
    18
    Par défaut
    Ok merci, ça marche...
    En revanche, n'étant pas du métier et novice en javascript, pour pouvoir l'adapter j'aurais voulu comprendre le rôle de ces codes dans la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
          if ( elem.textContent.trim() != str ){
            elem.style.display = 'none';
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     function(){
        cacher2( 'Bonjour = Hello' );
      }

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    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
    <div class="test">
      <p>Bonjour</p>
    </div>
     
    <div class="test">
      <p>Bonjour = Hello</p>
    </div>
     
    <div class="test">
      <p>Hello = Bonjour</p>
    </div>
     
    <div class="test">
      <p>Hello</p>
    </div>

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    cacher2( 'Bonjour = Hello' );

    Appel la fonction cacher2() avec en paramètre le texte qui doit rester visible, par exemple : "Hello".

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    elem = div2[i];
     
          if ( elem.textContent.trim() != str ){
            elem.style.display = 'none';
          }

    Traite le texte contenu dans l'élément du DOM, ici elem est div2[i].
    Le texte, elem.textContent, doit être débarrassé des espaces inutiles (avant et après le texte) en utilisant la méthode trim(), ce qui donne : elem.textContent.trim().
    Si le texte de l'élément du DOM est différent (!=) de celui (str) qui doit rester visible, on le cache.

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  5. #5
    Membre à l'essai
    Homme Profil pro
    Assistant ingénieur en ressources documentaires
    Inscrit en
    Novembre 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Assistant ingénieur en ressources documentaires
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2014
    Messages : 22
    Points : 18
    Points
    18
    Par défaut
    Eureka, je vois effectivement mieux... Merci encore !

    Une question subsidiaire : puis-je attribuer à str une variable, récupérée par l'ID d'un autre élément texte ? Ca ne rime à rien en code je pense, mais quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     var  str = document.getElementById('monchamp').textContent;
    ??

  6. #6
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Oui !

    Le code est bon !

    Doc sur textContent : https://developer.mozilla.org/fr/doc...de/textContent

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  7. #7
    Membre à l'essai
    Homme Profil pro
    Assistant ingénieur en ressources documentaires
    Inscrit en
    Novembre 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Assistant ingénieur en ressources documentaires
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2014
    Messages : 22
    Points : 18
    Points
    18
    Par défaut
    Je ne sais pas ce que j'ai boutiqué hier soir, mais effectivement ça marche...

    En tout cas c'est du script qui me tire une grosse épine du pied, c'est super !

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

Discussions similaires

  1. Condition If multiple
    Par M1000 dans le forum ASP
    Réponses: 2
    Dernier message: 01/03/2004, 13h46
  2. [MYSQL] conditions et requetes
    Par sebos63 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 26/02/2004, 16h41
  3. Condition sur debug et release
    Par xave dans le forum MFC
    Réponses: 3
    Dernier message: 04/02/2004, 15h04
  4. Condition et contenu TImage
    Par Detlev_linux dans le forum Langage
    Réponses: 6
    Dernier message: 23/12/2003, 01h00
  5. boucle avec condition d'arret changeante
    Par NicoH dans le forum Langage
    Réponses: 3
    Dernier message: 10/06/2003, 11h48

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