Javascript 复选框筛选结果

Javascript 复选框筛选结果,javascript,jquery,Javascript,Jquery,我正在做类似的事情 我想补充的是,当选择“1个卧室”时,即使没有选中任何位置复选框,也应显示具有1个卧室的任何项目 谢谢。在输入更改功能中尝试以下操作: var bedrooms = $(this).data('bedrooms'); $('ul > li').each(function(){ if($(this).data('bedrooms') !== bedrooms) $(this).toggle(); }); 您所需要做的就是在底部的语句中添加一个“or”,用于检查数组

我正在做类似的事情

我想补充的是,当选择“1个卧室”时,即使没有选中任何位置复选框,也应显示具有1个卧室的任何项目


谢谢。

在输入更改功能中尝试以下操作:

var bedrooms = $(this).data('bedrooms');
$('ul > li').each(function(){
    if($(this).data('bedrooms') !== bedrooms) $(this).toggle();
});

您所需要做的就是在底部的语句中添加一个“or”,用于检查数组是否为空

保持当前的代码结构,代码的最后一部分如下所示:

$('li').each(function() {
    if (($.inArray($(this).data('location'), loc_array) > -1 || loc_array.length == 0) && ($.inArray($(this).data('bedrooms'), room_array) > -1 || room_array.length == 0)) {
        $(this).show();
    } else {
        $(this).hide();
    }
});

当然,您的代码可以被重新分解,以使其更易于阅读和(可能)更高效。但这样做的目的是帮助你理解你需要做什么。重新分解稍后会出现

我已经试过了,结果是,当我搜索1卧室和伦敦时,它会显示包含1卧室的所有项目和包含伦敦的所有项目(而不是仅包含1卧室和伦敦的项目),然后稍微改变逻辑。我只是举个例子来说明我认为你想要什么。在这种情况下,检查两个都有
length>0
,如果都有,则必须是两个,如果其中一个只过滤到该值,如果两个都没有显示全部。嗨,谢谢你的帮助。结果需要显示具有共同检查项的结果。考虑到我在伦敦有1间卧室的公寓,伦敦的2居室公寓和巴黎的1居室公寓。如果我检查1间卧室,结果将显示:伦敦1间卧室公寓和巴黎1间卧室公寓。如果我检查了一间卧室,然后检查了伦敦,那么结果只会显示伦敦有一间卧室。同时,如果我选择伦敦,并且没有卧室数量复选框,那么结果将显示:伦敦有1间卧室的公寓,伦敦有2间卧室的公寓。