用jQuery确定一个元素是否有一个CSS类
我正在使用jQuery,并查看是否有一个简单的方法来确定元素是否有一个特定的CSS类与它关联。
我有元素的id,以及我正在寻找的CSS类。 我只需要能够在if语句中根据元素上该类的存在进行比较。
使用hasClass方法: 
 jQueryCollection.hasClass(className); 
要么
 $(selector).hasClass(className); 
参数(显然)是一个表示正在检查的类的string,它返回一个布尔值(所以它不像大多数jQuery方法那样支持链接)。
  注意:如果传递一个包含空白的className参数,它将与字面上的集合元素的classNamestring相匹配。 所以,如果你有一个元素, 
 <span class="foo bar" /> 
 那么这将返回true : 
 $('span').hasClass('foo bar') 
 这些将返回false : 
 $('span').hasClass('bar foo') $('span').hasClass('foo bar') 
从常见问题
 elem = $("#elemid"); if (elem.is (".class")) { // whatever } 
要么:
 elem = $("#elemid"); if (elem.hasClass ("class")) { // whatever } 
至于否定,如果你想知道一个元素是否没有一个类,你可以简单地做,如马克所说。
 if (!currentPage.parent().hasClass('home')) { do what you want } 
没有jQuery:
 var hasclass=!!(' '+elem.className+' ').indexOf(' check_class ')+1; 
要么:
 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'); 
这比jQuery更快!
检查官方的jQuery FAQ页面:
我如何testing一个元素是否具有相关类
  $('.segment-name').click(function () { if($(this).hasClass('segment-a')){ //class exist } }); 
在我的情况下,我使用的是一个jQuery函数,我有一个HTML元素与不同的css类添加,我正在寻找一个特定的类在这些,所以我用“是”一个很好的替代检查一个类dynamic添加到一个HTML元素,它已经有其他的CSS类,这是另一个不错的select。
简单的例子:
  <!--element html--> <nav class="cbp-spmenu cbp-spmenu-horizontal cbp-spmenu-bottom cbp-spmenu-open" id="menu">somethings here... </nav> <!--jQuery "is"--> $('#menu').is('.cbp-spmenu-open'); 
先进的例子:
  <!--element html--> <nav class="cbp-spmenu cbp-spmenu-horizontal cbp-spmenu-bottom cbp-spmenu-open" id="menu">somethings here... </nav> <!--jQuery "is"--> if($('#menu').is('.cbp-spmenu-bottom.cbp-spmenu-open')){ $("#menu").show(); } 
为了帮助任何人在这里登陆,但实际上正在寻找一个jQuery免费的方式来做到这一点:
 element.classList.contains('your-class-name')