J'ai une liste de chansons, et je veux que les utilisateurs puissent les filtrer en tapant dans un champ de texte. Voici ce que je fais maintenant:Filtrer une liste basée sur l'entrée de l'utilisateur avec jQuery
$("#filter_song_list").keyup(function() {
var filter = new RegExp($(this).val(), "i");
$("ul.song_list a").each(function(){
if (!$(this).text().match(filter)) {
$(this).hide();
} else {
$(this).show();
}
});
});
- Est-ce la bonne approche? Puisque j'interprète l'entrée de l'utilisateur comme une expression régulière, il ne peut pas rechercher des chansons avec (disons) une période dans le titre sans d'abord l'échapper ("."). Comment puis-je résoudre ce problème tout en conservant l'insensibilité à la casse de la recherche?
il pense que vous devez à l'utilisateur .toLowerCase() à la place. En outre, essayé (http://jsfiddle.net/aegq4/10/) et je reçois tous les éléments cachés et jamais montré à nouveau, même si l'entrée correspond au texte. Êtes-vous sûr que cela devrait fonctionner? Est-ce que je fais quelque chose de mal? –