将多个过滤器应用于对象的最佳方式

Best way to apply multiple filters to an object

我正在对一些具有多个数据属性的元素构建过滤器。 IE。形状和颜色。

Here is a fiddle of the listeners

    $('#colour input').on('change', function(e) {
                data = ($('input[name="myRadio"]:checked', '#colour').val());

                filter(data);
                console.log(secondfilter);
                e.preventDefault();
            });

    $('#shape input').on('change', function(e) {
               from = ($('input[name="myRadio"]:checked', '#shape').val());

               filter(from);
               console.log(secondfilter);
               e.preventDefault();
            });

我需要结合听众,但我不确定最好的方法是什么。

我试过组合选择器,即 'square red',但没有 class 用于“.square red”。我需要过滤“.square”和“.red”。

抱歉,如果这还不够清楚!

提前感谢任何help/directions。

你可以这样试试:

$('#colour input, #shape input').on('change', function(){

    $('#container .item').hide();

    var colour = $('#colour input:checked').val() ? '.' + $('#colour input:checked').val() : '',
        shape  = $('#shape input:checked').val() ? '.' + $('#shape input:checked').val() : '';

    $('#container .item' + colour + shape).show();
});

这里是the updated demo