【问题标题】:filter 2 items of the same category (jquery)过滤2个相同类别的项目(jquery)
【发布时间】:2013-01-21 09:45:50
【问题描述】:

这是我想问的一个问题: http://berckmans-designs.nl/filternew/index1.php

我在此处的一些帮助下制作了这个过滤系统,但问题是:我无法从同一类别中选择 2 个项目。 (假设我从“kleur”类别中选择“wit”和“zwart”)

希望你们能帮我完成这项工作。

Javascript:

    $(document).ready(function() {
    $(".series-selector-items > li").click(function() {
        $(this).toggleClass('selected');
        filterItems();
    });
});

function filterItems() {
    var classSelectors = $(".selected").map(function() {
        var cls = this.id.split('-');
        return '.'+cls.splice(2).join('-');
    }).toArray();

    //if no filter, show all
    if(!classSelectors.length){
        $('#items > li').show('slow');
    }

    $('#items > li').filter(classSelectors.join('')).show('slow');

    $('#items > li').not(function() {
        var self = this;
        var showThis = true;
        $.each(classSelectors, function(i,value) {
            if(!$(self).is(value)) {
                showThis = false;
            }
        });
        return showThis;
    }).hide('slow');
}

【问题讨论】:

  • if(!$(self).is(value)) 在某一时刻都为假,导致它们都被隐藏。
  • 问题是,我该如何解决这个问题?我的 javascript/jquery 知识很少,所以我真的不知道我在做什么

标签: jquery select filter categories


【解决方案1】:

你可以做到。检查这是否对您有帮助。

$(function() {
$(".series-selector-items > li").click(function() {
    $(this).toggleClass('selected');
    filterItems();
});
});

function filterItems() {
var classSelectors = $(".selected").map(function() {
    var cls = this.id.split('-');
    return '.'+cls.splice(2).join('-');
}).toArray();

if(!classSelectors.length){
    $('#items > li').show('slow');
}
else {
$('#items > li').filter(classSelectors.join(', ')).show('slow');
$("#items > li").filter(":not(" + classSelectors.join(', ') + ")").hide('slow');
}
}

您可以在此处查看演示:http://jsfiddle.net/pitchaip/huhbJ/1/

【讨论】:

  • 不,伙计,我需要过滤掉所有东西,比如如果我选择“wit”和“zwart”,我应该只得到 zwart 和 wit 的东西,但如果我从 ras 类别中选择薯条,我需要只看到 zwart 和 wit 薯条,而不是 fjord 和设得兰群岛等。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-01
  • 1970-01-01
相关资源
最近更新 更多