我正在尝试比较2个数组,以查看一个数组中的元素是否在另一个数组中。
但我似乎无法让它发挥作用
//if a categories checkbox is clicked
$j('#cat-dropdown li label input').click(function(e) {
//Get all selected categories
var categories = new Array;
$j('#cat-dropdown li label input').each(function(index, element) {
if($j(this).is(':checked')){
categories.push($j(this).val());
}
}); // Categories variable now has all selected cats
$j('.products-grid li.item').each(function(index, element) {
//get all the cateroies of a product
console.log('//////////////////////'+$j(this).val())
product_cats = $j(this).attr('data-product-categories').split(",");
//Now check if the product categories is in the selected categories
var inCategoryList = false;
for (i=0;i<categories.length;i++){
if($j.inArray(categories[i],product_cats)){
console.log('test '+categories[i])
inCategoryList = true;
}
}
if(inCategoryList == false){
$j(this).hide();
}
});//end each on product-grid li.item
});//end click function
但它不起作用,没有任何东西被隐藏..但是inArray方法似乎也没有正常工作,是否有不同的方法来比较2个数组并检查一个元素是否在另一个元素中。
基本流程是,用户选择一个复选框,li项目附有一个类别列表。如果复选框与某个类别匹配,则在没有匹配项时显示该项目,然后将其隐藏