Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.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 jQuery按类提供多个筛选器_Javascript_Jquery - Fatal编程技术网

Javascript jQuery按类提供多个筛选器

Javascript jQuery按类提供多个筛选器,javascript,jquery,Javascript,Jquery,我正在构建一个带有多个过滤器选项的过滤器选项。我想对类进行筛选,但无法使其正常工作。我设法创建了多个过滤器。这些过滤器也可以组合使用。但如果随后调整/更改其中一个过滤器,则结果不希望更新 第一次更换过滤器1 然后更改过滤器2的位置 如果您现在再次更改筛选器1,但未更改筛选器2,则不会更新结果。 $'select'.change函数{ var电流=该值; $.each$'FilterContainer'。查找'div.all'。not'。hidden'。not'。not'。当前,函数{ $thi

我正在构建一个带有多个过滤器选项的过滤器选项。我想对类进行筛选,但无法使其正常工作。我设法创建了多个过滤器。这些过滤器也可以组合使用。但如果随后调整/更改其中一个过滤器,则结果不希望更新

第一次更换过滤器1 然后更改过滤器2的位置 如果您现在再次更改筛选器1,但未更改筛选器2,则不会更新结果。 $'select'.change函数{ var电流=该值; $.each$'FilterContainer'。查找'div.all'。not'。hidden'。not'。not'。当前,函数{ $this.addClass'hidden'; }; $.each$'FilterContainer'。查找'div.all'。是“.”当前函数{ $this.removeClass'hidden'; }; }; .hidden{显示:无;} 过滤器:

全部展示 一 二 三 地点:

所有地点 新泽西州 纽约 帕 测试一NJ 测试一个纽约 测试一个PA 测试二NJ 测试二纽约 测试2帕 测试三NJ 测试三纽约 测试三个PA
您可能希望通过删除.hidden类来重置每个用户交互上的所有元素。在.change函数的顶部,尝试以下操作:

.removeClass('hidden');
从所有元素中删除.hidden后,可以将该类添加到需要它的元素中

在JSFIDLE示例中,您可以这样编写:

$('select').change(function () {
    var current = this.value;
    $.each($('#FilterContainer').find('div.all'), function () {
        $(this).removeClass('hidden');
    });

    $.each($('#FilterContainer').find('div.all').not('.' + current), function () {
        $(this).addClass('hidden');
    });
});

您可能希望通过删除.hidden类来重置每个用户交互上的所有元素。在.change函数的顶部,尝试以下操作:

.removeClass('hidden');
从所有元素中删除.hidden后,可以将该类添加到需要它的元素中

在JSFIDLE示例中,您可以这样编写:

$('select').change(function () {
    var current = this.value;
    $.each($('#FilterContainer').find('div.all'), function () {
        $(this).removeClass('hidden');
    });

    $.each($('#FilterContainer').find('div.all').not('.' + current), function () {
        $(this).addClass('hidden');
    });
});

非常感谢您的快速回复。谢谢你!对不起,我在帖子中输入了错误的代码。请参阅上面的JSFIDLE示例或新代码。非常感谢您的快速响应。谢谢你!对不起,我在帖子中输入了错误的代码。例如,请参阅JSFIDLE或上面的新代码。请始终尝试在问题本身中添加一个更可取的代码片段->/Ctrl+M,而不仅仅是指向可能无法脱机使用、被阻止等外部资源的链接。筛选器选择的标记无效。节点只能有文本节点,但不能有标题元素。嗨,Andreas,很抱歉,我是新来的,还没有发现它。谢谢你的帮助@为您的选择下拉列表分配ID,使生活更轻松。否则,“this”的值可能会混淆事物。这是一把小提琴:@RachelGallen是的,你说得对。我要玩它!再次感谢。请始终尝试在问题本身中添加一个作为snippet->/Ctrl+M的链接,而不仅仅是指向可能无法脱机使用、被阻止等外部资源的链接。筛选选择的标记无效。节点只能有文本节点,但不能有标题元素。嗨,Andreas,很抱歉,我是新来的,还没有发现它。谢谢你的帮助@为您的选择下拉列表分配ID,使生活更轻松。否则,“this”的值可能会混淆事物。这是一把小提琴:@RachelGallen是的,你说得对。我要玩它!再次感谢。