我正在使用数组的filter()方法,但它返回一个空数组。
function isSelected(value){
var tagString = $(value).attr('class');
$.each($(brandDrop.selections), function(index, brand) {
if(tagString.indexOf(brand) >= 0) {
console.log(tagString);
return tagString;
}
});
}
var products = [];
$.each($('.products li'), function(index, product){
products.push(product);
});
var brandFiltered = products.filter(isSelected);
console.log(brandFiltered);
以下是循环内的 tagstring 和循环外的 brandFiltered 的控制台输出:
AugustaCollection,Crib,publishSK,simmons,simmons-kids,wood
cribs:2058 BellanteCollection,Crib,publishSK,simmons-kids,wood
cribs:2058 BelmontCollection,Crib,publishSK,simmons-kids,wood
cribs:2082 []
这个函数是通过选择复选框来触发的。这个过滤器的目的是获取一组HTML元素的数组,检查它们的class属性中是否存在选定的值,并仅返回符合过滤器条件的元素的类名。循环内的控制台日志显示了正确的元素,但由于某种原因,在循环外返回了一个空数组。我是否错误地使用了过滤方法?
isSelected
方法没有返回任何值(undefined
)。 - A. Wolff