Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1398 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [JS] Cacher les lignes d'un tableau

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[JS] Cacher les lignes d'un tableau

n°1701324
endozen
Endorsen
Posté le 12-03-2008 à 18:31:34  profilanswer
 

Bonjour,
je souhaite cacher/afficher les lignes d'un tableau contenant pas mal de ligne.
La méthode que j'utilise me permet seulement de cacher une ligne :
 

Code :
  1. <script type="text/javascript">
  2. <!--
  3. function switchMenu(obj) {
  4. var el = document.getElementById(obj);
  5. if ( el.style.display != "none" ) {
  6.  el.style.display = 'none';
  7. }
  8. else {
  9.  el.style.display = '';
  10. }
  11. }
  12. //-->
  13. </script>


 
(...)
 

Code :
  1. <p><a href="#" onclick="switchMenu('regional')";>afficher</a></p>


 
et ensuite je défini une encre sur une ligne :
 

Code :
  1. ]
  2.   <tr id="regional" class="classregional">


 
ca marche bien mais le problème se pose pour plusieurs lignes, sachant que l'id est unique. J'ai tenté via ByClassName mais sans réussite (je suis légé en js...).
 
Merci !


Message édité par endozen le 12-03-2008 à 18:33:45

---------------
EOS 5D mk II | 17-40 f/4 L USM | 50 f/1.4 USM | 135 f/2 L USM
mood
Publicité
Posté le 12-03-2008 à 18:31:34  profilanswer
 

n°1701336
tpierron
Posté le 12-03-2008 à 19:15:41  profilanswer
 

Bah fait une boucle sur le tableau
 

Code :
  1. var table = document.getElementById("IdDuTableauDontTuVeuxCacherCertainesLignesMaisPasToutes" )
  2.  
  3. for (var i = 0; i < table.rows.length; i ++)
  4. {
  5.    var row = table.rows[i]
  6.  
  7.    if (row.className.indexOf("classregional" ) >= 0)
  8.        row.style.display = (row.style.display == "none" ? "" : "none" )
  9. }


 
Pas testé.

n°1701339
endozen
Endorsen
Posté le 12-03-2008 à 19:26:59  profilanswer
 

merci beaucoup tpierron, j'ai pas le temps de tester ce soir, mais je te donnes des nouvelles demain!
 
c'est quand même dommage que la fonction getElementsByClassName n'existe pas. Ca serait un gain de temps certain!


---------------
EOS 5D mk II | 17-40 f/4 L USM | 50 f/1.4 USM | 135 f/2 L USM
n°1701352
endozen
Endorsen
Posté le 12-03-2008 à 20:18:45  profilanswer
 

je ne comprends pas la ligne 7, peux tu m'en dire plus ? merci


---------------
EOS 5D mk II | 17-40 f/4 L USM | 50 f/1.4 USM | 135 f/2 L USM
n°1701366
tpierron
Posté le 12-03-2008 à 21:04:31  profilanswer
 

  • row.className => valeur de l'attribut class
  • row.className.indexOf => recherche la sous-chaine dans la chaine. Renvoie la position ou -1 si non trouvée.
  • C'est donc le filtre pour ton getElementsByClassName


Tu me diras, pourquoi pas faire plus simplement :

Code :
  1. if (row.className == "classregional" )


 
Parce que si tu spécifies plus d'une classe pour ton élément, ce test ne fonctionnera pas.


Message édité par tpierron le 12-03-2008 à 21:05:02
n°1701385
endozen
Endorsen
Posté le 12-03-2008 à 21:49:02  profilanswer
 

Code :
  1. <style>
  2. .transport_regional {
  3. background-color: #DBDBDB;
  4. }
  5. .transport_national {
  6. background-color: #EBEBEB;
  7. border: thin solid #006699;
  8. }
  9. </style>
  10. <html>
  11. <head>
  12. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  13. <title>test java</title>
  14. </head>
  15. <script type="text/javascript">
  16. <!--
  17.   var table = document.getElementById("transport_tableau" )
  18.   for (var i = 0; i < table.rows.length; i ++)
  19.   {
  20.   var row = table.rows[i]
  21.   if (row.className == "transport_regional" )
  22.   row.style.display = (row.style.display == "none" ? "" : "none" )
  23.   }
  24. //-->
  25. </script>
  26. <body>
  27. <table id="transport_tableau">
  28. <tr class="transport_regional">
  29.     <td>test</td>
  30.     <td>test</td>
  31.     <td>test</td>
  32. <tr class="transport_national">
  33.    <td>test</td>
  34.    <td>test</td>
  35.    <td>test</td>
  36. </tr>
  37. </table>
  38. </body>
  39. </html>


 
voilà le code simplifié, la méthode ne marche pas malheureusement...


Message édité par endozen le 12-03-2008 à 21:49:21

---------------
EOS 5D mk II | 17-40 f/4 L USM | 50 f/1.4 USM | 135 f/2 L USM

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [JS] Cacher les lignes d'un tableau

 

Sujets relatifs
tableau et couleurTableau à dimension variable
Probléme de copie de tableau et d'affichagecomment passer une ligne csv en tableau a deux dimensons ? en AWK ?
Modifier valeur champ tableausprinft a base de tableau
tableau d'une chaine de caractereprobleme tri par fusion de tableau
Fond cellule tableauRécupérer des données de word pour les archiver dans un tableau excel
Plus de sujets relatifs à : [JS] Cacher les lignes d'un tableau


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR