Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.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_Html_Drop Down Menu - Fatal编程技术网

Javascript jquery多下拉筛选菜单

Javascript jquery多下拉筛选菜单,javascript,jquery,html,drop-down-menu,Javascript,Jquery,Html,Drop Down Menu,我有基于多个下拉菜单选择的隐藏和显示图片。我试图让2个或更多的下拉菜单一起优化搜索 如果我在第一个下拉列表中选择了一个项目,我想在任何其他下拉列表中应用第二个过滤器,依此类推 我需要一些关于jquery的帮助。我目前的问题是,第二个过滤器从未启动。它被覆盖并重置过滤器。如果可能的话,我想添加第三个过滤器,以缩小搜索范围,更准确地找到我正在寻找的内容。下面是一些示例代码 $('select').change(function(){ var current = $(this).attr('value

我有基于多个下拉菜单选择的隐藏和显示图片。我试图让2个或更多的下拉菜单一起优化搜索

如果我在第一个下拉列表中选择了一个项目,我想在任何其他下拉列表中应用第二个过滤器,依此类推

我需要一些关于jquery的帮助。我目前的问题是,第二个过滤器从未启动。它被覆盖并重置过滤器。如果可能的话,我想添加第三个过滤器,以缩小搜索范围,更准确地找到我正在寻找的内容。下面是一些示例代码

$('select').change(function(){
var current = $(this).attr('value');

if(current == 'all'){
    $('#FilterContainer').children('div.all').show();
} 

else {

    $('#FilterContainer').children('div:not(.' + current + ')').hide();
$('#FilterContainer').children('div.' + current).show();
 }

  return false;
})
HTML

过滤器:

全部展示 一个 两个 三 地点:

所有地点 新泽西州 纽约 帕 测试一NJ 测试一个纽约 测试一个PA 测试二NJ 测试二纽约 测试2帕 测试三NJ 测试三纽约 测试三个PA 测试一NJ 测试一个PA 测试一个PA 测试二NJ 测试二纽约 测试二纽约
试试这个:

$('select').change(function () {
  var current = this.value; // <------get the value this way.
   if (current == 'all') {
      $('#FilterContainer').find('div.all').show();
   } else {
      $('#FilterContainer').find('div').hide();
      $('#FilterContainer').find('div.all.' + current).show();
   }
   return false;
});
$('select')。更改(函数(){
var current=this.value;//尝试以下方法:

$('select').change(function () {
  var current = this.value; // <------get the value this way.
   if (current == 'all') {
      $('#FilterContainer').find('div.all').show();
   } else {
      $('#FilterContainer').find('div').hide();
      $('#FilterContainer').find('div.all.' + current).show();
   }
   return false;
});
$('select')。更改(函数(){

var current=this.value;//要使其按要求工作,可以尝试以下代码:

$('select').change(function () {
    var current = this.value;
    $.each($('#FilterContainer').find('div.all').not('.hidden').not('.'+current), function(){
        $(this).addClass('hidden');
    });
    $.each($('.'+current), function () {
        $(this).removeClass('hidden');
    });
});
以及添加CSS:

.hidden{
    display:none;
}
给你这个工作小提琴:

然而:

我不认为这正是你想要去的地方。请玩它,你会明白的。如果你改变顶部过滤器,那么底部过滤器一切都好。但是如果你再改变顶部过滤器,它将继续隐藏…基本上,一旦有东西被隐藏,它就不会回来。这将成为一个逻辑难题,并且测试的结构需要修改。随着测试的深入,它只会变得更加复杂


您可能希望考虑在每个筛选器级别添加/移除不同的类,然后只检查这些过滤器。

使它按照您的要求工作,您可以尝试以下代码:

$('select').change(function () {
    var current = this.value;
    $.each($('#FilterContainer').find('div.all').not('.hidden').not('.'+current), function(){
        $(this).addClass('hidden');
    });
    $.each($('.'+current), function () {
        $(this).removeClass('hidden');
    });
});
以及添加CSS:

.hidden{
    display:none;
}
给你这个工作小提琴:

然而:

我不认为这正是你想要去的地方。请玩它,你会明白的。如果你改变顶部过滤器,那么底部过滤器一切都好。但是如果你再改变顶部过滤器,它将继续隐藏…基本上,一旦有东西被隐藏,它就不会回来。这将成为一个逻辑难题,并且测试的结构需要修改。随着测试的深入,它只会变得更加复杂

您可能希望考虑在每个筛选器级别添加/移除不同的类,然后只检查这些过滤器。

试试这个-

$("select.filterby").change(function(){
    var filters = $.map($("select.filterby").toArray(), function(e){
        return $(e).val();
    }).join(".");
    $("div#FilterContainer").find("div").hide();
    $("div#FilterContainer").find("div." + filters).show();
});

试试这个-

$("select.filterby").change(function(){
    var filters = $.map($("select.filterby").toArray(), function(e){
        return $(e).val();
    }).join(".");
    $("div#FilterContainer").find("div").hide();
    $("div#FilterContainer").find("div." + filters).show();
});

使用

请查看我对这个问题的回答:您只需要将概念扩展到第三个选项。谢谢您的帮助,但这不是我想要的。我正在尝试使用多个动态过滤器,可以以任何方式优化搜索。请查看我对这个问题的回答:您只需要扩展d将概念添加到第三个选项。感谢您的帮助,但这不是我要寻找的。我正在尝试使用多个动态筛选器,可以以任何方式优化搜索。我尝试了小提琴,但它仍然只筛选一件事。在第一个筛选器之后,我会尝试应用第二个筛选器,但它会覆盖第一个筛选器。我正在尝试这应该是一个动态过滤器。我尝试了小提琴,但它仍然只过滤一件事。在第一次过滤后,我会尝试应用第二个过滤器,但它会覆盖第一个。我尝试使用第二个下拉菜单来进一步缩小结果。这应该是一个动态过滤器。它将使用两个选择进行过滤,我想这就是您要查找的。是的。正是我要查找的。使用第三个下拉菜单进行测试,结果很好。谢谢!!欢迎您。您可以链接任意多个选择:)@bryan151,你能分享三个下拉式过滤器的代码吗?我想这就是你要找的。是的。正是我要找的。用第三个下拉式过滤器测试这个功能,效果很好。谢谢!!不客气。你可以链接任意多个选择:)@bryan151,你能分享三个下拉式过滤器的代码吗