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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Assistant ingénieur en ressources documentaires
    Inscrit en
    Novembre 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    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
    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 : 74
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    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 averti
    Homme Profil pro
    Assistant ingénieur en ressources documentaires
    Inscrit en
    Novembre 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    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
    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 : 74
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    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 averti
    Homme Profil pro
    Assistant ingénieur en ressources documentaires
    Inscrit en
    Novembre 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    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
    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 : 74
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    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.)

+ 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