Cacher tr javascript

Résolu/Fermé
DoulyCreations Messages postés 187 Date d'inscription lundi 11 avril 2011 Statut Membre Dernière intervention 23 mars 2015 - Modifié par DoulyCreations le 19/05/2011 à 17:08
DoulyCreations Messages postés 187 Date d'inscription lundi 11 avril 2011 Statut Membre Dernière intervention 23 mars 2015 - 19 mai 2011 à 18:17
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 ...
A voir également:

2 réponses

DoulyCreations Messages postés 187 Date d'inscription lundi 11 avril 2011 Statut Membre Dernière intervention 23 mars 2015 19
19 mai 2011 à 17:15
Je précise que juste la première ligne se cache mais pas toutes celles souhaitées...
0
DoulyCreations Messages postés 187 Date d'inscription lundi 11 avril 2011 Statut Membre Dernière intervention 23 mars 2015 19
19 mai 2011 à 18:17
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