2009-10-08 12 views

Odpowiedz

102

Po prostu atrybut Klasa:

var div1Class = $('#div1').attr('class'); 

Przykład

<div id="div1" class="accordion accordion_active"> 

Aby sprawdzić powyżej div dla klas zawartych w nim

var a = ("#div1").attr('class'); 
console.log(a); 

wyjście konsola

accordion accordion_active 
+0

czy to naprawdę atrybut? 'className' ..? Czy nazwa "className" nie jest używana tylko w javascript? 'document.getElementById (" div1 "). className' – peirix

+2

Widzę teraz, że zgodnie z dokumentem jQuery sugerowane jest użycie' className', aby nie zakłócało to słowa zarezerwowanego 'class' w javascript ... – peirix

+2

** UWAGA : ** W jQuery 1.6 * ostatecznie * naprawiono metodę 'attr' i powinieneś teraz użyć' $ (...). Attr ('class'); ',' className' to tylko właściwość accessor, która mapuje do atrybutu 'class' w elemencie DOM - nie ma atrybutu' className', to po prostu właściwość. – CMS

2
$("#div1").attr("class") 
11
$('#div1').attr('class') 

zwróci ciąg klas. Włącz go na tablicę nazw klas

var classNames = $('#div1').attr('class').split(' '); 
+2

+ 1'd. ($ ('# div1'). attr ('klasa') || '') .split ('') jest bezpieczniejsze imo. – user420667

0

spróbować

$ ("# div1"). Attr ("Klasa")

16

Wystarczy

var divClass = $("#div1").attr("class") 

Możesz zrobić inne rzeczy do manipulowania klasą elementu

$("#div1").addClass("foo"); // add class 'foo' to div1 
$("#div1").removeClass("foo"); // remove class 'foo' from div1 
$("#div1").toggleClass("foo"); // toggle class 'foo' 
1
var className=$('selector').attr('class'); 

lub

var className=$(this).attr('class'); 

classname bieżącego elementu

7

Od teraz lepiej jest użyć funkcji .prop() zamiast .attr() jeden.

Tutaj dokumentacji jQuery:

Jak jQuery 1.6, metoda .attr() zwraca niezdefiniowane dla atrybutów , które nie zostały ustawione. Ponadto, .attr() nie powinno być używane na zwykłych obiektach, tablicach, oknach lub dokumencie. Aby pobrać i zmienić właściwości DOM, użyj metody .prop().

var div1Class = $('#div1').prop('class'); 
1

Sposób addClass w jQuery ma currentClass zbudowany w. Można go używać wewnątrz wywołania funkcji.Tak:

<div>First div</div> 
<div class="red">Second div</div> 
<div>Third div</div> 
<div>Fourth div</div> 

<script> 
    $("div").addClass(function(index, currentClass) { 
    var addedClass; 
    if (currentClass === "red") { 
     addedClass = "green"; } 
    return addedClass; 
    }); 
</script> 
0
<div id="my_id" class="my_class"></div> 

jeśli jest to pierwszy div następnie rozwiązać go tak:

document.write("div CSS class: " + document.getElementsByTagName('div')[0].className); 

alternatywnie to zrobić:

document.write("alternative way: " + document.getElementById('my_id').className); 

otrzymuje on następujące wyniki:

div CSS class: my_class 
alternative way: my_class 
0

jeśli chcesz wyglądać na div, który ma więcej niż 1 klasa spróbuj tego:

HTML:

<div class="class1 class2 class3" id="myDiv"> 

jQuery:

var check = $("#myDiv").hasClass("class2").toString(); 

ouput:

true

Powiązane problemy