2009-09-30 17 views
10

Ho un numero di elementi sulla mia pagina che appartengono a classi con identificatori univoci, in base alla mia programmazione back-end. Tale che io possa avere il seguente:jQuery: conteggio di occorrenze univoche della classe

<element class="element-1"></element> 
<element class="element-1"></element> 
<element class="element-2"></element> 
<element class="element-2"></element> 
<element class="element-3"></element> 
<element class="element-3"></element> 

C'è un modo per contare le occorrenze uniche di questi classnames con jQuery, in modo che qualsiasi funzione farebbe che sarebbe tornato 3?

+5

Sì: 'funzione countUnique (elemento di) {return 3}' –

+0

No sul serio, come sei arrivato 3 come una risposta a contare che ad esempio? Avrei immaginato che ti aspettassi 2 visto che ci sono 2 di ogni lezione presente. –

+0

Voglio contare la presenza dei nomi di classe univoci, di cui ci sono tre ("elemento-1", "elemento-2", "elemento-3"), non quanti elementi appartengono a ciascuna classe. – neezer

risposta

5
var obj = {}; 
var num = 0; 
$("element[class^=element]").each(function() { 
    var cl = $(this).attr("class"); 
    if(!obj[cl]) { 
    obj[cl] = {}; 
    num++; 
    } 
}); 
alert(num); 
+0

Fantastico, grazie! – neezer

+0

Ho letto la documentazione di jQuery, non riesco ancora a capire perché funzioni? – MeLight

+1

Può essere fatto in 1 riga 'alert ($ (" elemento [classe^= elemento] "). Lunghezza);' – XIMRX

56

la risposta è molto più semplice: $("element.element-1").length;

+1

Si dovrebbe avere questo come risposta corretta :-) –

Problemi correlati