1

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

4

0 回答 0