0

我正在做类似的事情

What I want to add is that when '1 Bedroom' is selected, any items that have 1 Bedroom should display, even if none of the location checkboxes are selected.

谢谢。

4

2 回答 2

2

您需要做的就是在底部的语句中添加一个“或”,以检查数组是否为空。

保持您当前的代码结构,您的最后一点代码将如下所示:

$('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();
    }
});

当然,您的代码可以重构以使其更易于阅读并且(可能)更高效。但这样做的目的是帮助您了解您需要做什么。重构稍后出现!

于 2012-08-01T11:57:57.713 回答
0

在您的输入更改功能中尝试此操作:

var bedrooms = $(this).data('bedrooms');
$('ul > li').each(function(){
    if($(this).data('bedrooms') !== bedrooms) $(this).toggle();
});
于 2012-08-01T11:55:34.830 回答