我有一个函数在其中遍历每个.marker,创建一个包含其类的变量。

我也有一个名为checkBoxClasses的数组。

我遇到的问题是对照数组markerClasses检查变量checkBoxClasses中的类。我想分解变量markerClasses并通过数组传递每个单独的类。

到目前为止的代码如下:

$('.marker').each(function () {

      var markerClasses = $(this).attr('class').split(' ');

            if ($.inArray(markerClasses , checkBoxClasses) > -1) {

                //do something

            };
});

最佳答案

inArray检查数组中的单个值。由于数组引用markerClasses的值不在checkBoxClasses中,因此它将始终返回-1。

目前尚不清楚您想做什么。如果您想知道markerClasses中是否有任何checkBoxClasses条目,则需要循环循环并逐个检查它们,并在第一个匹配项时中断。如果要检查它们是否都在checkBoxClasses中,则类似,但是在第一个不匹配项时中断。

例如,查看元素的任何类是否在checkBoxClasses中:

var markerClasses = $(this).attr('class').split(' ');
var found = false;
$.each(markerClasses, function(index, value) {
    if ($.inArray(value, checkBoxClasses) !== -1) {
        found = true;
        return false;
    }
}
if (found) {
    // At least one of the element's classes was in `checkBoxClasses`
}


要查看元素的所有类是否都在checkBoxClasses中:

var markerClasses = $(this).attr('class').split(' ');
var allFound = true;
$.each(markerClasses, function(index, value) {
    if ($.inArray(value, checkBoxClasses) === -1) {
        allFound = false;
        return false;
    }
}
if (allFound) {
    // *All* of the element's classes was in `checkBoxClasses`
    // (Including the case where the element didn't have any.)
}

关于jquery - .inArray传递变量以检查数组JQuery,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8726472/

10-11 12:12