チェックボックスの2つのグループでフィルタリングしたいdivのリストがあります:Type
とCategory
。
2つのカテゴリをチェックすると、少なくとも1つのカテゴリを含むDIVが表示されます。
タイプをチェックすると、そのタイプのDIVのみが表示されます。チェックされたカテゴリが含まれている場合でも。
<input type="checkbox" name="type[]" value="Type 1">
<input type="checkbox" name="type[]" value="Type 2">
<input type="checkbox" name="type[]" value="Type 3">
<input type="checkbox" name="category[]" value="1">
<input type="checkbox" name="category[]" value="2">
<input type="checkbox" name="category[]" value="3">
<input type="checkbox" name="category[]" value="4">
DIVの:
<div data-type="Type 1" data-cat="1 4">
<div data-type="Type 2" data-cat="1 2 3">
私がこれまでに持っているコード(フィルタータイプのみ):
$('form input:checkbox').change(function(){
var type = [];
var checked = $(':checkbox:checked').length;
// Hide all
$('#videoHolder').children('div').hide();
$(':checkbox:checked').each(function(i){
type[i] = $(this).val();
$('#videoHolder').children('div[data-type="' + type[i] + '"]').fadeIn();
});
// Show all
if(checked==0){
$('#videoHolder').children('div').fadeIn();
}
});