Re:jQuery多重复选框页面filter

这个问题是jQuery Multiple Checkbox页面filter的扩展。 这完全是我的问题。

我有三个目标:

  • 我想要一个复选框列表来过滤页面内容。
  • 我想只返回匹配所有当前复选框的内容,隐藏所有其余内容。
  • 如果没有选中框,则应显示所有内容。

如前面在上述问题中所讨论的,目标A和C是通过以下方式完成的:

$('div.tags').delegate('input:checkbox', 'change', function() { var $lis = $('.results > li').hide(); //For each one checked $('input:checked').each(function() { $lis.filter('.' + $(this).attr('rel')).show(); }); }); 

目标B完成了:

 var selector = $('input:checked').map(function () { return $(this).attr('rel'); }).get().join('.'); $lis.filter(selector).doWhatever(); 

但我不知道如何将这两个脚本集成在一起?

给这个镜头: http : //jsfiddle.net/mattball/tkLK6/

 $('div.tags').delegate('input[type=checkbox]', 'change', function() { var $lis = $('.results > li'), $checked = $('input:checked'); if ($checked.length) { var selector = $checked.map(function () { return '.' + $(this).attr('rel'); }).get().join(''); $lis.hide().filter(selector).show(); } else { $lis.show(); } });