Obter o nome da turma usando jQuery

Eu quero pegar o nome da class usando jQuery

E se tiver um id

Depois de obter o elemento como object jQuery através de outros meios que não a sua class, então

 var className = $('#sidebar div:eq(14)').attr('class'); 

deve fazer o truque. Para o ID use .attr('id') .

Se você estiver em um manipulador de events ou outro método jQuery, em que o elemento é o nó DOM puro sem wrapper, você pode usar:

 this.className // for classs, and this.id // for IDs 

Ambos são methods DOM padrão e são bem suportados em todos os navegadores.

É melhor usar .hasClass() quando quiser verificar se um elemento tem uma class específica. Isso ocorre porque, quando um elemento tem várias class , não é trivial verificar.

Exemplo:

 

Onde:

 $('#test').attr('class'); // returns `main divhover`. 

Com .hasClass() podemos testar se o div tem o divhover da class.

 $('#test').hasClass('divhover'); // returns true $('#test').hasClass('main'); // returns true 

Tenha cuidado, talvez você tenha uma class e uma subclass.

  
dfdfdfsdfds

Se você usa soluções anteriores, você terá:

 myclass mysubclass 

Então, se você quiser ter o seletor de class , faça o seguinte:

 var className = '.'+$('#id').attr('class').split(' ').join('.') 

e você terá

 .myclass.mysubclass 

Agora, se você quiser selecionar todos os elementos que tenham a mesma class, como div acima:

  var brothers=$('.'+$('#id').attr('class').split(' ').join('.')) 

que significa

 var brothers=$('.myclass.mysubclass') 

Atualizar 2018

OR pode ser implementado com javascript baunilha em 2 linhas:

  const { classList } = document.querySelector('#id'); document.querySelectorAll(`.${Array.from(classList).join('.')}`); 

Isso é para obter a segunda class em várias classs usando em um elemento

 var class_name = $('#videobuttonChange').attr('class').split(' ')[1]; 

você pode simplesmente usar

var className = $('#id').attr('class');

Se o seu

tem um id :

 
​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

…podes tentar:

 var yourClass = $("#test").prop("class"); 

Se o seu

tem apenas uma class , você pode tentar:

 var yourClass = $(".my-custom-class").prop("class"); 

Se você for usar a function split para extrair os nomes das classs, terá que compensar possíveis variações de formatação que possam produzir resultados inesperados. Por exemplo:

 " myclass1 myclass2 ".split(' ').join(".") 

produz

 ".myclass1..myclass2." 

Acho melhor você usar uma expressão regular para corresponder ao conjunto de caracteres permitidos para nomes de classs. Por exemplo:

 " myclass1 myclass2 ".match(/[\d\w-_]+/g); 

produz

 ["myclass1", "myclass2"] 

A expressão regular provavelmente não está completa, mas espero que você entenda o meu ponto. Essa abordagem atenua a possibilidade de formatação incorreta.

Para completar a resposta do Whitestock (que é o melhor que eu encontrei) eu fiz:

 className = $(this).attr('class').match(/[\d\w-_]+/g); className = '.' + className.join(' .'); 

Então para “myclass1 myclass2” o resultado será ‘.myclass1 .myclass2’

Você pode obter o nome da class de duas maneiras:

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

OU

 var className = $('.myclass').prop('class'); 
 

Com Javascript

 document.getElementById('elem').className; 

Com jQuery

 $('#elem').attr('class'); 

OU

 $('#elem').get(0).className; 

Se você não sabe o nome da class, mas você sabe o ID você pode tentar isso:

 

Em seguida, ligue-o usando:

 alert($('#currentST').attr('class')); 

Tente

HTML

 
area 1
area 2
area 3

jQuery

   

Se você quiser obter classs de div e, em seguida, deseja verificar se existe alguma class, então o uso simples.

 if ( $('#div-id' ).hasClass( 'classname' ) ) { // do something... } 

por exemplo;

 if ( $('body').hasClass( 'home' ) ) { $('#menu-item-4').addClass('active'); } 

se temos único ou queremos primeiro div elemento podemos usar

$('div')[0].className caso contrário, precisamos de um id desse elemento