jquery多重复选框过滤器

时间:2012-07-03 15:39:47

标签: jquery filter checkbox

我正在尝试根据住宿区页面上的不同参数来过滤页面。我无法让过滤器协同工作,因此如果用户单击一个部分,它将与另一部分一起使用。

小提琴是http://jsfiddle.net/ktcle/YEtgM/2/

感谢您的帮助

$('input').change(function(){
$('input').each(function(){
    var checked = $(this).attr('checked') || false;
    var numberofrooms = $(this).data('bedrooms');
    var sitelocation = $(this).data('location');
    $('li').each(function(){
        if ($(this).data('bedrooms')==numberofrooms){
            checked ? $(this).show() : $(this).hide();
        }

        if ($(this).data('location')==sitelocation){
            checked ? $(this).show() : $(this).hide();
        }

    });
});

});

1 个答案:

答案 0 :(得分:0)

这样的事情怎么样 jsFiddle example

我给出了你的输入值有几个原因,但这里是jQuery:

$('input').change(function() {
    var room_array = new Array(),
        loc_array = new Array();
    $('.br').each(function() {
        if ($(this).is(':checked')) {
            room_array.push($(this).data('bedrooms'));
        }
    });
    $('.loc').each(function() {
        if ($(this).is(':checked')) {
            loc_array.push($(this).data('location'));
        }
    });
    $('li').each(function() {
        if ($.inArray($(this).data('location'), loc_array) > -1 && $.inArray($(this).data('bedrooms'), room_array) > -1) {
            $(this).show();
        } else {
            $(this).hide();
        }
    });
});​