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