我有一个函数在其中遍历每个.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/