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 :

Afficher l'un et cacher tous les autres


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Goupo
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2006
    Messages : 505
    Par défaut Afficher l'un et cacher tous les autres
    Salut à tous,

    J'ai un soucis avec ma fonction dont le but est de rendre visible un fielset et de cacher tous les autres.
    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
    function setVisibleAndHideOthers(id) {
     //Trouver tous les fieldset
     var lst= document.getElementsByTagName("fieldset");
     
     var chaine = "";
     
     //Parcourrir la liste des éléments
     for (i=1; i<(lst.length); i++) {
      var previousClass = lst[i].class;
      //Si l'élément est celui demandé
      if (lst[i].id == id) {
       lst[i].class = "visible"; //Alors, le montrer
       } else {
       lst[i].class = "hidden"; //Sinon, le cacher
       }
       chaine += lst[i].id + " " + previousClass + " " + lst[i].class + "\n";
     }
     alert(chaine);
    }
    Elle m'affiche bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    1437 hidden hidden
    1145 hidden visible
    1086 hidden hidden
    1361 hidden hidden
    1263 visible hidden
    1287 hidden hidden
    Voici le css associé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    .hidden {
       display : none;
    }
    .visible {
       display : inline;
    }
    Mais mes fieldset, n'apparaisent ni ne disparaissent.

    Quelqu'un voit-il le souci?

    Merci d'avance!

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    si tu testes en cliquant sur le 1° ou dernier, c'est normal : ils ne passent pas dans ta boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     for (i=1; i<(lst.length-1); i++) {
    ==>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     for (i=0; i<lst.length; i++) {
    Mais peut-être était-ce volontaire ?

    A+

  3. #3
    Membre éclairé Avatar de Goupo
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2006
    Messages : 505
    Par défaut
    Pour le départ à l'indice 1, c'est volontaire.
    Avant la liste des fieldsets que je veux montrer/cacher, il y a un fieldset auquel je ne souhaite pas toucher.

    Quand au -1, il s'agit d'une erreur. Cependant, Le problème a lieu sur tous les éléments et pas seulement sur le premier ou le dernier.

    Merci d'avoir proposé.

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Arf !
    J'avais pas vu : .class => .className

    A+

  5. #5
    Membre éclairé Avatar de Goupo
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2006
    Messages : 505
    Par défaut
    Oh, non! C'était obligé que ce soit un truc à la con comme celui-là... Ah, mes petites erreurs de débutant Js. ^^

    Merci bien!

  6. #6
    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 : 55
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var previousClass = lst[i].class;

    class est un mot réservé de JavaScript, pour récupérer le nom de la classe, il faut utiliser className.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var previousClass = lst[i].className;
    Avant la liste des fieldsets que je veux montrer/cacher, il y a un fieldset auquel je ne souhaite pas toucher.
    Le dernier aussi ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

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

Discussions similaires

  1. Cacher tous les divs contenus dans un autre div
    Par baggie dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 12/03/2010, 12h16
  2. afficher un div et cacher tous les autres
    Par maysa dans le forum Général JavaScript
    Réponses: 18
    Dernier message: 20/01/2010, 22h17
  3. Sélectionner un champ et tous les autres s'affichent
    Par 512banque dans le forum Access
    Réponses: 20
    Dernier message: 05/07/2006, 10h06
  4. Réponses: 6
    Dernier message: 06/06/2006, 13h22
  5. Réponses: 1
    Dernier message: 16/02/2005, 12h04

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