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/Masquer cellule d'un tableau


Sujet :

JavaScript

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Afficher/Masquer cellule d'un tableau
    Bonjour, je vous sollicite à travers le forum puisque j'ai un petit soucis pour la réalisation d'un site web pour lequel j'aurais besoin d'un tableau avec des cellules que je pourrais masquer/afficher à partir d'un bouton.
    Je suis parvenu à réaliser un code mais ne passant pas sur tous les navigateurs (Firefox par exemple), j'ai essayé de résoudre le problème mais en vain (je sais que le problème vient par exemple de srcElement (target pour Firefox), ...)

    Ci-dessous, le code original en espérant que vous saurez l'adapter pour que chaque navigateur puisse le lire!
    Merci

    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Document sans nom</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <style type="text/css">
    <!--
    .vis {
    	display: inline;
    }
    .invis {
    	display: none;
    }
    -->
    </style>
    </head>
     
    <body>
    <table width="100%" border="2" cellspacing="2" cellpadding="1" onClick="affiche()">
      <tr>
        <td width="12%"><input id="1" type="submit" name="Submit" value="Lire"></td>
        <td width="88%">Article 1</td>
      </tr>
      <tr>
        <td colspan="2" class="invis" id="art1">texte 1</td>
      </tr>
      <tr>
        <td><input id="2" type="submit" name="Submit" value="Lire"></td>
        <td>Article 2</td>
      </tr>
      <tr>
        <td colspan="2" class="invis" id="art2">texte 2</td>
      </tr>
      <tr>
        <td><input id="3" type="submit" name="Submit" value="Lire"></td>
        <td>Article 3</td>
      </tr>
      <tr>
        <td colspan="2" class="invis" id="art3">texte 3</td>
      </tr>
    </table>
    </body>
     
    <script language="JavaScript" type="text/javascript">
    function affiche() {
    x=window.document.getElementById("art"+window.event.srcElement.id);
    if (window.event.srcElement.tagName=="INPUT")
    {
    if (x.className=="vis"){x.className="invis";} else { x.className="vis";}
     
    }
    }
    </script>
     
     
    </html>

  2. #2
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 649
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 649
    Points : 11 138
    Points
    11 138
    Par défaut
    bonjour,

    un code un peu plus simple :
    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
    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
     
    <html>
    <head>
    <title></title>
     
    <script type="text/javascript">
    <!--
    function CacheLigne()
    {
     var eTab = document.getElementById("tab")
     eTab.rows[1].style.display="none";
    }
    function MontreLigne()
    {
     var eTab = document.getElementById("tab")
     eTab.rows[1].style.display="";//bug CSS ne pas utiliser la valeur block
    }
    //-->
    </script>
     
    </head>
     
    <body>
    <table id="tab" border="1">
      <tr>
        <td>ligne 1
        </td>
      </tr>
      <tr>
        <td>ligne 2
        </td>
      </tr>
      <tr>
        <td>ligne 3
        </td>
      </tr>
    </table>
    <input type="button" value="Cache"  onclick="CacheLigne()">
    <input type="button" value="Montre"  onclick="MontreLigne()">
     
    </body>
     
    </html>

  3. #3
    Inactif
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 117
    Points : 142
    Points
    142
    Par défaut
    Citation Envoyé par Auteur
    function MontreLigne()
    {
    var eTab = document.getElementById("tab")
    eTab.rows[1].style.display="";//bug CSS ne pas utiliser la valeur block
    }
    [/code]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function MontreLigne()
    {
     var eTab = document.getElementById("tab")
     eTab.rows[1].style.display="";//bug CSS ne pas utiliser la valeur block
    }
    Heu accessoirement ce n'est pas du tout un bug, tu as déjà vu un TR avec un display block ou inline ? moi nan
    le display par défaut d'un TR est "table-row", donc foutre un display:block au TR lui donne un comportement totalement différent.
    Et accessoirement ya que IE qui accepte le display:block pour les table, tbody et tr, IE de mes fesses

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/09/2012, 16h40
  2. Afficher/masquer ligne d'un tableau
    Par ramone dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 08/11/2011, 10h10
  3. [BO 6.5.1][DeskI] Masquer cellule d'un tableau
    Par afssaLERH dans le forum Deski
    Réponses: 8
    Dernier message: 17/03/2008, 11h40
  4. Afficher cellule d'un tableau
    Par sebaaas dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 03/10/2007, 20h39
  5. [html] afficher une page dans une cellule d'un tableau
    Par Tag.51 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 14/06/2006, 13h19

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