在jQuery中比较2个数组

时间:2013-10-10 14:23:43

标签: javascript jquery arrays

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

0 个答案:

没有答案