2012-07-03 2 views
0

Я пытаюсь получить страницу для фильтрации на основе различных параметров на странице для раздела размещения. Я не могу заставить фильтры работать вместе, так что если пользователь нажимает на один раздел, он будет работать с другим.jquery multi checkbox filter

скрипку является 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(); 
     } 

    }); 
}); 

});

+0

Любой причина, почему ваши входы не имеют имена и значения атрибутов? – j08691

+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(); 
     } 
    }); 
});​ 
+0

, спасибо за это, это действительно полезно, однако я, вероятно, не был слишком ясен раньше, мне нужно, чтобы разные наборы данных работали независимо , поэтому, если пользователь нажимает на Лондон, они видят весь Лондон, а затем он будет отфильтровываться снова на разных наборах данных, когда пользователь нажимает 2 комнаты, поэтому он показывает только лондон 2 комнаты. Я буду использовать несколько разных наборов данных Спасибо –