Javascript jquery多下拉筛选菜单
我有基于多个下拉菜单选择的隐藏和显示图片。我试图让2个或更多的下拉菜单一起优化搜索 如果我在第一个下拉列表中选择了一个项目,我想在任何其他下拉列表中应用第二个过滤器,依此类推 我需要一些关于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
$('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,你能分享三个下拉式过滤器的代码吗