jQuery如何检查数组中的所有元素是否都有特定的类

时间:2015-08-12 10:05:47

标签: jquery arrays

我试图检查插入到数组中的所有元素是否有类。 到目前为止我对数组的代码是这样的:

var ids = ['#biography', '#videogallery', '#pubblications', '#contacts', '#resume'];
var currentElem = "";

function test(){
    $(ids.join()).each(function() {
        var currentElem = $(this);
    })
};

问题是现在我有点卡住了。我的意思是,我应该写什么,以便if语句检查数组中具有id的所有元素是否具有" test"类?

类似的东西:

  • 如果#biography为class" test"
  • 如果#videogallery为class" test"
  • 如果所有这些都作为"测试" class,然后运行一个函数
  • 即使一个人没有,也要运行其他。

希望它不会太混乱。在此先感谢您的帮助!

4 个答案:

答案 0 :(得分:5)

您可以使用.filter()标识类的元素,然后比较已过滤元素和数组的length属性。

var elementsHavingTestClass = $(ids.join()).filter('.test');    

if(elementsHavingTestClass.length == ids.length){
    //All elements have the class
    //Do something
}else{
    //Do something else
}

答案 1 :(得分:1)

您可以使用 filter() 函数并获取该类的元素并比较长度。

elementsWithTest = $(ids.join()).filter('.test');

答案 2 :(得分:0)

您可以过滤列表,只包含带有'test'类的元素,然后将大小与原始大小进行比较:

var filtered_arr = $(ids.join()).filter('.test');
if(filtered_arr.length === ids.length) {
    // All have the class
}
else {
    // At least one doesn't have the class
}

答案 3 :(得分:0)

这可能会有所帮助

function test() {
    var flag = true;
    $(ids.join()).each(function () {
        if (!$(this).hasClass("yourClass"))
          {
            flag=false;
            break;
          }
    });
    return flag;
}