jquery检查集合/数组的任何元素是否具有类

jquery检查集合/数组的任何元素是否具有类,jquery,arrays,class,if-statement,Jquery,Arrays,Class,If Statement,我试图简化jquery代码。 我有一个元素的选择,我想检查这些元素是否有一个特定的类,所有选择器都有相同的特定类 if($(".sf-item-352").hasClass("sf-option-active") || $(".sf-item-356").hasClass("sf-option-active") || $(".sf-item-362").hasClass("sf-option-active")) { do_something(); } else { do

我试图简化jquery代码。 我有一个元素的选择,我想检查这些元素是否有一个特定的类,所有选择器都有相同的特定类

if($(".sf-item-352").hasClass("sf-option-active") || $(".sf-item-356").hasClass("sf-option-active") || $(".sf-item-362").hasClass("sf-option-active")) {

     do_something();

} else {

     do_something_else();

}
上面的代码工作得很好,但是我想使用一个选择器数组,而不是为每个选择器编写一个条件,我可能需要检查很多选择器

if($(".sf-item-352").hasClass("sf-option-active") || $(".sf-item-356").hasClass("sf-option-active") || $(".sf-item-362").hasClass("sf-option-active")) {

     do_something();

} else {

     do_something_else();

}
以下是我到目前为止一直在尝试的:

var elems = $(".sf-item-352, .sf-item-356", .sf-item-362");

elems.each(function() {

     if ($(this).hasClass("sf-option-active")) {

          do_something();

     } else {

          do_something_else();
     }

});
我显然没有得到同样的结果。。。 有人能帮我吗?有什么建议吗


谢谢

如果要使用选择器数组,可以将它们组合成多部分逗号分隔查询,然后使用筛选器查看是否有其他类:

let selectors = ['.foo', '.bar', '.etc'];
if ($(selectors.join(', ')).filter('.someClass').length) {
    //some have the class
}
改变

进入jQuery对象数组:

var elems = [$(".sf-item-352"), $(".sf-item-356"), $(".sf-item-362")];

您的代码很好,但有一些语法错误。以下是工作代码:

const hasClass=$.sf-item-352、.sf-item-356、.sf-item-362.hasClasssf-option-active; 如果有阶级{ console.logclass存在; }否则{ console.logclass不存在; } 第一组 第二组
第三,为什么有三个单独的jQuery对象?那么OP是如何检查类的存在的呢?我在纠正他不起作用的代码,他说这是我一直在尝试的为什么。过滤器…长度?@Andreas因为这会将匹配的元素过滤成具有过滤器类的元素子集,and.length根据该子集是否包含0个false或非零个true元素而强制转换为truthy/falsy。注意:确定是否有任何匹配的元素被分配给给定的类。当然,但我的方法也很好。与生活一样,jQuery通常有一百万种方法可以实现同样的目标。您可以使用hasClass发布自己的答案。我倾向于选择filter.length,因为它有更广泛的应用,而不仅仅是用于检查类。