如果元素在Jquery .hasClass()函数中具有"class1"和/或"class2"

JLF*_*JLF 5 javascript jquery

我想检查一个元素是否具有此类或其他类,如下所示:

if ( $elem.hasClass("foo") || $elem.hasClass("bar") ) {
  // do something
}
Run Code Online (Sandbox Code Playgroud)

我还想检查一个元素是否有两个类:

if ( $elem.hasClass("foo") && $elem.hasClass("bar") ) {
  // do something else
}
Run Code Online (Sandbox Code Playgroud)

有没有办法在hasClass()函数内完成所有这些操作?就像是:

if ( $elem.hasClass("foo bar") ) {
  // do something when element has both classes
}
else if ( $elem.hasClass("foo","bar") ) {
  // do something when element has either class
}
Run Code Online (Sandbox Code Playgroud)

Luc*_*oli 7

严格回答你的问题:不,你不能。

hasClass()接受单个参数。

正如其他人所指出的,您可能会使用is(),但这里有一个测试表明性能受到很大影响。

我建议您保留当前的代码。