Re:jQuery多重复选框页面过滤器

时间:2012-03-17 05:58:07

标签: jquery ajax checkbox filter

此问题是jQuery Multiple Checkbox Page 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();

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

1 个答案:

答案 0 :(得分:0)

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