Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 两级过滤器或/和_Javascript_Jquery_Html - Fatal编程技术网

Javascript 两级过滤器或/和

Javascript 两级过滤器或/和,javascript,jquery,html,Javascript,Jquery,Html,我创建了一个2级过滤器,其中第一个过滤器是OR,第二个是and 这意味着您可以只选择过滤器1的一个选项,并在过滤器2中选择任意多个选项 该过滤器通过使用类来工作 正在筛选的元素列表具有特定的类别,首先是一个月(使用筛选1筛选),然后是类别(使用筛选2筛选) 使用过滤器时,如果过滤器1选择了月份,则将显示该月份为类的元素 但是一旦选择了一个类别,它就必须显示该月份以及该类别的元素 到目前为止,它是有效的 这个想法是,当选择第二个类别时,它必须显示该特定月份的元素,并且选择其中一个类别 例如: 过

我创建了一个2级过滤器,其中第一个过滤器是OR,第二个是and

这意味着您可以只选择过滤器1的一个选项,并在过滤器2中选择任意多个选项

该过滤器通过使用类来工作

正在筛选的元素列表具有特定的类别,首先是一个月(使用筛选1筛选),然后是类别(使用筛选2筛选)

使用过滤器时,如果过滤器1选择了月份,则将显示该月份为类的元素

但是一旦选择了一个类别,它就必须显示该月份以及该类别的元素

到目前为止,它是有效的

这个想法是,当选择第二个类别时,它必须显示该特定月份的元素,并且选择其中一个类别


例如:

过滤器1:七月

筛选2:社团活动

结果:

活动(七月社团)-->只是其中一个类别

活动(7月活动)-->只是其中一个类别

活动(7月$Campaigns)-->两个类别


因为您的收音机和复选框以两种不同的方式工作,所以您需要创建两个变量,一个用于
[type=“radio”]:checked
,另一个用于
[type=“checkbox”]:checked
,并形成选择器以从中显示

对于所选的每个类别,使用所选月份将其合并,然后使用
将其合并

例如:

第一组:七月

过滤器2:社团、活动

=>已创建选择器:
.event\u item.july.societies、.event\u item.july.magnetics


请解释什么不起作用。当我运行您的小提琴时,它似乎运行得很好,但在您的示例中(在小提琴中),它已经以这种方式运行了!如果您选择
july
,然后选择
societies
campaiments
作为筛选器,则不存在筛选器,因此不会显示任何内容。。。但是,如果您选择
sportsclub
作为筛选器,则仍将显示该事件。在我的示例中,它显示已选择所有类别的元素。我想要实现的是显示至少有一个类别的元素,而不是所有类别的元素
$('.press').click( function() {
    const checked = $(":checked");
    var filtered = "";

    if (checked.length === 0) {
        return $(".event_item").show();
    }

    $(".event_item").hide();

    checked.each(function() {
        filtered = filtered + "." + this.id;
    });

    $(".event_item" + filtered ).show();
});