12
votes

JQuery: Comment compter le nombre d'éléments qui "afficher" n'est pas "Aucun"?

J'utilise show () code> et masquer () code> Pour afficher et masquer les lignes dans une table.

Comment puis-je compter le nombre de lignes non cachées ( Plus précisément, des lignes avec affichage code>! = Aucun code>)? p>

Notez que: P>

$('tr:visible').length


0 commentaires

4 Réponses :


20
votes

5 commentaires

devrait fonctionner dans la plupart des cas, mais pourrait casser car il s'agit simplement d'une correspondance de sous-chaîne et non d'un test d'égalité exact.


C'est vrai, mais il a dit qu'il utilisait Cacher () et cela fonctionne avec ça.


Oui, mais que se passe-t-il si une autre propriété 'FOO-Display: Aucun n'est définie? Votre correspondance de sous-chaîne serait (incorrecte) détecter cela.


Bon point. Votre chemin semble définitivement comme le meilleur moyen de le faire.


J'ai trouvé cela la meilleure solution pour correspondre à la classe et le sentir improbable que le point d'affichage FOO se supervise dans de nombreux scénarios ... aucun ne vient vraiment à l'esprit.




19
votes

Filtrez vos lignes en fonction de leur propriété CSS réelle:

$('tr').filter(function() {
    return $(this).css('display') !== 'none';
}).length;


0 commentaires

0
votes

en ajoutant ceci au mélange. J'ai trouvé que cela soit une option plus fiable.

function recount () {
    var numOfVisibleRows = jQuery('tr.itemtext:visible').length;
    document.getElementById("item_table_count").innerHTML = numOfVisibleRows;
}


0 commentaires