JavaScript cacher des lignes d'un tableau
Résolu/Fermé
A voir également:
- JavaScript cacher des lignes d'un tableau
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Comment faire un tableau - Guide
- Trier un tableau excel - Guide
- Application pour cacher des applications - Guide
4 réponses
J'ai trouvé la solution, je la publie en espérant qu'elle aidera quelqu'un un jour.
L'astuce consiste a faire une autre boucle pour chaque ligne, pour récupérer les <td> exactement comme on a fait pour les <tr>... c'est presque tout!
Voici le bout du code:
function show(word)
{
var reg=new RegExp(word,'gi')
var lignes=document.getElementById('tablecontainer').getElementsByTagName('tr');
var i=1;
while(lignes[i])
{
var found=false
var cells=lignes[i].getElementsByTagName('td');
var j=0;
while(cells[j])
{
if(cells[j].innerHTML.match(reg)){found=true;}
j++;
}
if(!found)
{
if( lignes[i].style.display == '') lignes[i].style.display = 'none';
else lignes[i].style.display = '';
}
i++;
}
}
L'astuce consiste a faire une autre boucle pour chaque ligne, pour récupérer les <td> exactement comme on a fait pour les <tr>... c'est presque tout!
Voici le bout du code:
function show(word)
{
var reg=new RegExp(word,'gi')
var lignes=document.getElementById('tablecontainer').getElementsByTagName('tr');
var i=1;
while(lignes[i])
{
var found=false
var cells=lignes[i].getElementsByTagName('td');
var j=0;
while(cells[j])
{
if(cells[j].innerHTML.match(reg)){found=true;}
j++;
}
if(!found)
{
if( lignes[i].style.display == '') lignes[i].style.display = 'none';
else lignes[i].style.display = '';
}
i++;
}
}
113pictural
Messages postés
464
Date d'inscription
jeudi 24 septembre 2009
Statut
Membre
Dernière intervention
5 octobre 2009
53
29 sept. 2009 à 04:45
29 sept. 2009 à 04:45
Bonjour, je ne puis vous répondre pour le javascript. Cependant, c'est très certainement faisable en .css, en créant autant de classes qu'il y a de listes de mots à mettre en surlignage. Disons que ce sera à essayer la prochaine fois ...
Désolé pour cette fois.
Désolé pour cette fois.
Alors personne ne répond?
Je croyais que c'est banal.
en fait le problème est au niveau de la comparaison: if(table[l].toString().indexOf(rel)<0) qui sert a déterminer si le mot clé est inclus dans la ligne ou pas. S'il l'est, il le laisse toujours affiché, sinon il le cache/ré-affiche selon son état actuel.
Puisque maintenant il cache /ré-affiche toutes les lignes, cela veut dire qu'il n'arrive pas a vérifier si le mot clé est dans la ligne ou pas.
j'utilise .toString() pour transformer l'objet en string, ensuite indexOf pour savoir si le mot clé (rel) existe ou pas.
Alors, cela ne vous dit rien?
Je croyais que c'est banal.
en fait le problème est au niveau de la comparaison: if(table[l].toString().indexOf(rel)<0) qui sert a déterminer si le mot clé est inclus dans la ligne ou pas. S'il l'est, il le laisse toujours affiché, sinon il le cache/ré-affiche selon son état actuel.
Puisque maintenant il cache /ré-affiche toutes les lignes, cela veut dire qu'il n'arrive pas a vérifier si le mot clé est dans la ligne ou pas.
j'utilise .toString() pour transformer l'objet en string, ensuite indexOf pour savoir si le mot clé (rel) existe ou pas.
Alors, cela ne vous dit rien?