我正在使用 jQuery,想看看是否有一种简单的方法来确定元素是否具有与之关联的特定 CSS 类。
我有元素的 id,以及我正在寻找的 CSS 类。我只需要能够在 if 语句中根据元素上该类的存在进行比较。
我正在使用 jQuery,想看看是否有一种简单的方法来确定元素是否具有与之关联的特定 CSS 类。
我有元素的 id,以及我正在寻找的 CSS 类。我只需要能够在 if 语句中根据元素上该类的存在进行比较。
使用hasClass
方法:
jQueryCollection.hasClass(className);
或者
$(selector).hasClass(className);
参数(显然)是一个表示您正在检查的类的字符串,它返回一个布尔值(因此它不支持像大多数 jQuery 方法一样的链接)。
注意:如果您传递一个className
包含空格的参数,它将与集合的元素className
字符串逐字匹配。例如,如果你有一个元素,
<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 免费的方式来做到这一点:
element.classList.contains('your-class-name')