Подсчет видимых дивов с помощью jQuery

HTML-код:

<div class="male">...</div>
<div class="male">...</div>
<div class="female">...</div>

у меня есть несколько divs с категориями как класс (и больше divs без .male внутри них), при запуске я считаю их с

$('.male').size(); // Returns 40 items for example

(Я знаю size(); устарел, но мы используем более старую версию jQuery)

во время приложения некоторые из divs становятся невидимыми после определенного щелчка, Я хочу рассказать видимого предметы.

пробовал

$('.male :visible').size();

но это дало мне ужасно большое число, например 3050, поэтому я предполагаю, что селектор подсчитывает все видимые дивы внутри .male или что-то в этом роде.

кто-то может посоветовать мне правильный селектор только для видимых divs с определенным классом?

2 ответов


вам нужно удалить пространство между .male и :visible, в противном случае вы нацелены на все видимые элементы внутри .male:

$('.male:visible').size();

вот быстрый JSFiddle демо показывая как.

обновление: jQuery 1.8 устарел его size() метод в пользу использования JavaScript length свойство вместо этого. Теперь мы можем:

$('.male:visible').length;

удалите пробел из селектора:

$('.male:visible').size();