2009-09-30 11 views
10

Ich habe eine Reihe von Elementen auf meiner Seite, die zu Klassen mit eindeutigen Bezeichnern gehören, basierend auf meiner Back-End-Programmierung. So dass ich die folgenden haben:jQuery: Zählen eindeutige Vorkommen der Klasse

<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> 

Gibt es eine Weise, die ich die einzigartigen Vorkommen dieser Klassennamen mit jQuery zählen kann, so dass alles, was Funktion, dass 3 zurückkehren würde tun würde?

+5

Ja: 'Funktion COUNTUNIQUE (element) {return 3}' –

+0

Nein im Ernst, wie Sie 3 als Antwort bekommen haben, dieses Beispiel zu zählen? Ich hätte gedacht, dass du 2 erwartet hast, da zwei von jeder Klasse anwesend sind. –

+0

Ich möchte das Vorhandensein der eindeutigen Klassennamen zählen, von denen es drei gibt ("Element-1", "Element-2", "Element-3"), nicht wie viele Elemente zu jeder Klasse gehören. – neezer

Antwort

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

Super, danke! – neezer

+0

Ich habe die jQuery-Dokumentation gelesen, kann immer noch nicht verstehen, warum das funktioniert? – MeLight

+1

Kann in 1 Zeile 'alert ($ (" element [class^= element] "). Länge);' – XIMRX

56

die Antwort ist viel einfacher: $("element.element-1").length;

+1

Sie sollten dies als die richtige Antwort haben :-) –

Verwandte Themen