2013-10-15 20 views
7

HTML:Count sichtbar divs mit jQuery

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

Ich habe mehrere divs mit Kategorien wie Klasse (und mehr divs ohne .male in ihnen), beim Start Ich zähle sie mit

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

(Ich weiß, size(); ist veraltet, aber wir verwenden eine ältere Version von jQuery)

Während der Anwendung, einige der divs drehen i Nicht sichtbar nach einem bestimmten Klick, Ich möchte die sichtbaren Artikel zu erzählen.

Ich versuchte

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

Aber es gab mir eine schreckliche hohe Zahl wie 3050, so nehme ich an die Wähler alle sichtbaren divs innerhalb .male oder etwas zählt.

Kann mir jemand den richtigen Selektor für nur sichtbare divs mit bestimmter Klasse empfehlen?

+0

Sie sammeln alle Elemente (nicht nur divs) innerhalb des .male Behälter. Was ist mit $ ('div.male: visible'). Size()? – opalenzuela

+0

Sogar ältere Versionen enthalten '.length', nicht wahr? ;) – ThiefMaster

+0

@ThiefMaster Ich habe versucht mit '.length()' und es gab mir einen Fehler, ich hinterließ einen Kommentar darüber in den Quellen, für den Fall .. :-) – DanFromGermany

Antwort

19

Sie müssen den Raum zwischen .male und :visible entfernen, sonst peilen Sie alle sichtbaren Elemente innerhalb.male:

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

Here's a quick JSFiddle demo beide zeigen.

UPDATE: jQuery 1.8 veraltet seine size() Methode für length Eigenschaft von JavaScript verwendet stattdessen. Wir können jetzt:

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

Entfernen Sie das Leerzeichen aus dem Selektor:

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

Unglaubliches Timing! – mavrosxristoforos