2010-07-08 13 views
49

Element wygląda tak:jQuery - dostać się do pierwszej klasy tylko z elementu

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

jQuery.attr('class') powróci obu klas. Jak mogę uzyskać tylko pierwszą klasę ("blah" w tym przypadku) z jQuery?

+3

problemem jest to, że jeśli dodać/usunąć zajęcia poprzez jquery, nie uratuje prawidłową kolejność elementów. więc może chcesz sprawdzić, czy ta klasa jest na liście, zamiast uzyskać pierwszą. – cRichter

+1

Ogólnie nie ufałbym, że wszystkie przeglądarki oddadzą je w tej samej kolejności. –

Odpowiedz

109

Trzeba split że do tablicy:

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

Lub użyj wyrażenia regularnego: 'var first = $ ('# foo') .attr ('class'). Replace (/^(\ S *). * /, '$ 1');' – Pointy

+0

@Pointy: Yup, dzięki za dodanie tego. – Sarfraz

+0

fajne, działa. dzięki: P – Alex

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

i powiedział "jQuery.attr ('class')' zwróci obie klasy ", co oznacza, że ​​przez' jQuery' miał na myśli instancję obiektu jQuery, a nie funkcję contructor, która wywołuje 'jQuery.fn.init' – galambalazs

Powiązane problemy