Javascript 如果元素有;“1类”;和/或;类别2“;在Jquery.hasClass()函数中
我想检查一个元素是否有这个类或其他类似的类:Javascript 如果元素有;“1类”;和/或;类别2“;在Jquery.hasClass()函数中,javascript,jquery,Javascript,Jquery,我想检查一个元素是否有这个类或其他类似的类: if ( $elem.hasClass("foo") || $elem.hasClass("bar") ) { // do something } 我还要检查一个元素是否有两个类: if ( $elem.hasClass("foo") && $elem.hasClass("bar") ) { // do something else } 在hasClass()函数中是否有办法完成这一切?比如: if ( $elem.has
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
}
你可以做一些不同的事情来实现这一点。但不确定这是否满足您的需求
$("span.foo, span.bar").each( function() {
$(".test").html("foo or bar was found");
});
JS小提琴:
使用if的第二个解决方案是使用.is()
例如:
if ($("span").is(".foo, .bar")) {
$(".test").html("foo or bar exists");
};
jshiddle:严格回答您的问题:不,您不能 接受单个参数 正如其他人指出的,您可能会使用
is()
,但这表明性能会受到很大的惩罚
我建议您继续使用当前的代码。您可以尝试使用
$element.is('.foo,.bar')
是否可能重复使用一个表达式来表达两个相反的表达式?$elem.hasClass(“foo-bar”)
是指它同时拥有两个类还是其中一个类?如果您不告诉jQuery,它应该如何知道您想要表达什么?然后使用例如if($element.is('.foo.bar'){…}或者如果($element.is('.foo.bar')){…}
sois()
比hasClass()更有用
每当使用多个类或条件时?使用is而不是hasClassUpdated JSFIDLE添加了第二个示例,以使其更具相关性。我只是说,是的,有很多方法可以检查操作预期行为。我认为,is()
的执行情况比hasClass()
差,但从未确认过。所以使用操作符比使用is()
?是的。我在答案中加了一个测试。