2010-09-04 4 views
1

J'ai une table avec un certain nombre de lignes, je veux ensuite mettre en surbrillance les lignes qui contiennent la valeur x, puis inverser la sélection. Jusqu'à présent, je suis capable de sélectionner les lignes qui contiennent la valeur du filtre, mais l'inverse me cause des problèmes.CSS/JQuery - Filtrage des lignes de la table et inversion de la sélection

D'abord, je suis en sélectionnant les lignes qui correspondent à la valeur de ma recherche et ajoutez un nom de classe:

var rows = $("#table tbody tr td:nth-child(1):contains('" + searchValue + "')"); 
$(rows).parent().addClass('filtered'); 

Je suis en train d'ajouter un nom de classe qui ne possède pas le nom de la classe « filtrée », ce est la ligne que je ne peux pas obtenir droit:

$('#table tbody tr:not(.filtered)').addClass('hidden'); 

La classe cachée se termine sur toutes les lignes.
Vous avez des idées?

Merci,
Martin

Répondre

1

Je l'ai essayé: http://jsfiddle.net/eYRWj/ il ne fonctionne pas. Cela fonctionne comme prévu.

Essayez console.log(rows) (avec Firebug installé et sa console activée), pour voir si elles sont vraiment marquées comme .filtered, c'est-à-dire si la recherche a réussi.

+0

Salut Aularon, vous avez raison, il ne fonctionne pas. J'avais une autre valeur de recherche qui ne correspondait à rien et renvoyait des résultats incorrects, j'ai enlevé ceci et il fait maintenant ce que je veux, merci. – Martin

0

essai avec des guillemets doubles comme ceci: $('#table tbody tr:not(".filtered")').addClass('hidden');

Questions connexes