Determine se um elemento tem uma class CSS com jQuery

Eu estou trabalhando com jQuery e olhando para ver se há uma maneira fácil de determinar se o elemento tem uma class CSS específica associada a ele.

Eu tenho o id do elemento e a class CSS que estou procurando. Eu só preciso ser capaz de, em uma declaração if, fazer uma comparação baseada na existência dessa class no elemento.

Use o método hasClass :

 jQueryCollection.hasClass(className); 

ou

 $(selector).hasClass(className); 

O argumento é (obviamente) uma string representando a class que você está verificando, e retorna um booleano (portanto, ele não suporta o encadeamento como a maioria dos methods jQuery).

Nota: Se você passar um argumento className que contenha espaço em branco, ele será correspondido literalmente com a string className dos elementos da coleção. Então, se, por exemplo, você tem um elemento,

  

então isso retornará true :

 $('span').hasClass('foo bar') 

e estes retornarão false :

 $('span').hasClass('bar foo') $('span').hasClass('foo bar') 

do FAQ

 elem = $("#elemid"); if (elem.is (".class")) { // whatever } 

ou:

 elem = $("#elemid"); if (elem.hasClass ("class")) { // whatever } 

Quanto à negação, se você quer saber se um elemento não tem uma aula, você pode simplesmente fazer como Mark disse.

 if (!currentPage.parent().hasClass('home')) { do what you want } 

Sem jQuery:

 var hasclass=!!(' '+elem.className+' ').indexOf(' check_class ')+1; 

Ou:

 function hasClass(e,c){ return e&&(e instanceof HTMLElement)&&!!((' '+e.className+' ').indexOf(' '+c+' ')+1); } /*example of usage*/ var has_class_medium=hasClass(document.getElementsByTagName('input')[0],'medium'); 

Isso é muito mais rápido que o jQuery!

No interesse de ajudar qualquer um que pousa aqui, mas estava realmente procurando por uma maneira livre de jQuery de fazer isso:

 element.classList.contains('your-class-name') 

Verifique a página oficial da FAQ do jQuery:

Como faço para testar se um elemento tem class perticular ou não

  $('.segment-name').click(function () { if($(this).hasClass('segment-a')){ //class exist } }); 

No meu caso, eu usei o ‘is’ uma function jQuery, eu tinha um elemento HTML com diferentes classs css adicionadas, eu estava procurando por uma class específica no meio deles, então eu usei o “is” uma boa alternativa para verificar uma class adicionada dinamicamente a um elemento html, que já possui outras classs css, é outra boa alternativa.

exemplo simples:

     $('#menu').is('.cbp-spmenu-open'); 

exemplo avançado:

     if($('#menu').is('.cbp-spmenu-bottom.cbp-spmenu-open')){ $("#menu").show(); }