2013-10-15 17 views
7

HTML:Count div visibili con jQuery

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

Ho diversi div con categorie come classe (e più div senza .male dentro di loro), all'avvio li contare con

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

(So ​​che size(); è deprecato ma usiamo una versione precedente di jQuery)

Durante l'applicazione, alcune delle div nvisibile dopo un clic specifico, Voglio raccontare gli articoli visibili.

ho cercato

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

ma mi ha dato un numero elevato orribile, come 3050, in modo da assumere il selettore conta tutti i div visibili all'interno .male o qualcosa del genere.

Qualcuno è in grado di consigliarmi il selettore corretto per solo div visibili con classe specifica?

+0

si stanno raccogliendo tutti gli elementi (non solo div) all'interno del contenitore .male. Che dire di $ ('div.male: visible'). Size()? – opalenzuela

+0

Anche le versioni precedenti contengono '.length', vero? ;) – ThiefMaster

+0

@ThiefMaster Ho provato con '.length()' e mi ha dato un errore, ho lasciato un commento a riguardo nelle fonti, nel caso .. :-) – DanFromGermany

risposta

19

è necessario rimuovere lo spazio tra .male e :visible, altrimenti ci si rivolge tutti gli elementi visibili entro.male:

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

Here's a quick JSFiddle demo mostra sia.

UPDATE: jQuery 1.8 deprecato il suo metodo size() a favore dell'uso di proprietà di JavaScript length invece. Possiamo ora:

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

Rimuovere lo spazio dal selettore:

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

Incredibile tempistica! – mavrosxristoforos