我想检查某个元素是否包含此类或其他类,如下所示:
if ( $elem.hasClass("foo") || $elem.hasClass("bar") ) {
// do something
}
我还想检查一个元素是否有两个类:
if ( $elem.hasClass("foo") && $elem.hasClass("bar") ) {
// do something else
}
有没有办法在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
}
答案 0 :(得分:3)
严格回答你的问题:不,你不能。
hasClass()
接受一个论点。
正如其他人所指出的那样,你可能会使用is()
,但here is a test表明表演会受到很严厉的惩罚。
我建议你继续使用当前的代码。
答案 1 :(得分:1)
你可以做一些不同的事情来实现这一目标。不确定这是否符合您的需求。
这样的例子:
$("span.foo, span.bar").each( function() {
$(".test").html("foo or bar was found");
});
JS小提琴:http://jsfiddle.net/s3gL5pwm/1/
使用if的第二个解决方案是使用.is()代替。
例如:
if ($("span").is(".foo, .bar")) {
$(".test").html("foo or bar exists");
};
JSfiddle:http://jsfiddle.net/eL2a8smt/