2010-07-08 12 views
49

Das Element sieht wie folgt aus:jQuery - bekommen die erste Klasse nur aus einem Element

<li class="blah active"> ... </li> 

jQuery.attr('class') werden beide Klassen zurück. Wie bekomme ich nur die 1. Klasse ('blah' in diesem Fall) mit jQuery?

+3

das Problem ist, dass, wenn Sie Klassen über jquery hinzufügen/entfernen, wird es nicht die richtige Reihenfolge der Elemente speichern. Vielleicht möchten Sie überprüfen, ob diese Klasse in der Liste ist, anstatt die erste zu bekommen. – cRichter

+1

Im Allgemeinen würde ich nicht allen Browsern vertrauen, sie in der gleichen Reihenfolge an Sie zurück zu geben. –

Antwort

109

Sie müssen split, dass in ein Array:

console.log(jQuery('selector').attr('class').split(' ')[0]); 
+1

Oder verwenden Sie eine Regex: 'var erste = $ ('# foo'). Attr ('Klasse'). Ersetzen (/^(\ S *). * /, '$ 1');' – Pointy

+0

@ Pointy: Yup, Danke, dass du das hinzugefügt hast. – Sarfraz

+0

cool, funktioniert. danke: P – Alex

5
var first = jQuery.attr('class').split(" ")[0]; 
+0

und er sagte "' jQuery.attr ('class') 'wird beide Klassen zurückgeben", was bedeutet, dass mit 'jQuery' eine Instanz des jQuery-Objekts gemeint ist, nicht die contructor-Funktion, die' jQuery.fn.init' aufruft – galambalazs

Verwandte Themen