我正在尝试比较 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 项目附有一个类别列表。如果复选框与类别匹配,则保持项目显示,如果没有匹配项,则将其隐藏