Bonjour,
je ne parviens pas à récupérer le nombre de résultat issu de la fonction filter de jquery.

$("#myInput").on("keyup", function() {
    var value = $(this).val().toLowerCase();
    $("#MySearch tr").filter(function() {
        $(this).toggle($(this).text().toLowerCase().indexOf(value) > -1);
        if (value !== '') {
            $(this).css("background-color", "#E6FFB5");
            $(this).hover(function(){
                $(this).css("background-color", "#fff");
            }, function(){
                    $(this).css("background-color", "#E6FFB5");
                }
            );
        } else {
            $(this).css("background-color", "");
            $(this).hover(function(){
                $(this).css("background-color", "");
            });
        }; 
    });
});

Je souhaite afficher le nombre de résultat des éléments trouvés.
merci encore

4 réponses


Hello,

$("#MySearch tr") retourne une liste d'élements, celle-ci peut être stockée dans une variable.
Ensuite, la fonction filter() peut être appelée depuis la variable.

const trList = $("#MySearch tr");
const trListCount = trList.length;

trList.filter(function() {
heb
Auteur

Bonjour,
merci pour ta méthode mais le résultat affiché n'est pas celui saisi dans le champ texte. Ton code affiche le nombre total de produits, mais pas le nombre de résultats en fonction de la saisie.

heb
Auteur

Bonjour,
j'ai ajouté $(".trListCount").html(trListCount); pour l'affichage.
Cela me donne le nombre de résultat total, mais ce dernier ne s'actualise pas lors de la saisie.

merci

Le code semble un peu brouillon, peut être repose la logique à plat. Par exemple tu branche un évènement dans une boucle d'un autre évènement (ce comportement de hover pourrait être fait en CSS je pense) ce qui créera des problèmes sur le long terme