用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')