Cacher tr javascript

Résolu
DoulyCreations Messages postés 265 Statut Membre -  
DoulyCreations Messages postés 265 Statut Membre -
Bonjour,

Je suis bloqué sur un léger problème de javascript.
Je souhaite afficher / cacher plusieurs ligne d'un tableau sans chargement de page.
J'ai donné un id à chaque ligne à cacher mais j'ai vu qu'on ne devait pas donner le même id a plusieurs balises ...

<input type="checkbox" onchange="show('a_cacher')" /> Afficher / Cacher 
<table> 
<tr><td>Texte</td></tr> 
<tr id="a_cacher"><td>Texte</td></tr> 
<tr><td>Texte</td></tr> 
<tr><td>Texte</td></tr> 
<tr id="a_cacher"><td>Texte</td></tr> 
<tr id="a_cacher"><td>Texte</td></tr> 
<tr><td>Texte</td></tr> 
</table> 


J'ai tenté de créer un petit javascript mais sans succès...

var current=null; 

function show( id ) 
{ 
 current = document.getElementById(id); 
 if(current.style.display=='table-row') 
 { 
  current.style.display='none'; 
 } 
 else 
 { 
  current.style.display='table-row'; 
 } 
} 


Si quelqu'un pourrait m'aider ça serait génial et ça me servira d'exemple pour de prochains problèmes de javascript :)



Quand on veut on peut ! Ou pas ...

2 réponses

  1. DoulyCreations Messages postés 265 Statut Membre 19
     
    Je précise que juste la première ligne se cache mais pas toutes celles souhaitées...
    0
  2. DoulyCreations Messages postés 265 Statut Membre 19
     
    Yeah problème résolu.
    Je poste le résultat pour ceux que ça intéresse:

    .js:
    var current=null;
    
    function show()
    {
    	var nombretr = document.getElementsByTagName('h6').length; //nombre de tr a cacher
    	for(var i=1; i<=nombretr; i++)
    	{
    		var stockacacher = 'non_stock'+i;
    		current = document.getElementById(stockacacher);
    		
    		if(current.style.display=='table-row')
    		{
    			current.style.display='none';
    		}
    		else
    		{
    			current.style.display='table-row';
    		}
    	}
    }


    Je précise que chaque tr à cacher j'ai incrémenté (non_stock1, non_stock2...).
    Ensuite j'ai rajouté une balise <h6></h6> avec un display:none; afin de pouvoir compter combien il y a de lignes à cacher.

    Si vous souhaitez apporter une amélioration je suis preneur.
    0