Динамически фильтровать HTML-таблицу с 2 фильтрами Jquery - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть таблица казино с различными атрибутами данных, например,

<tr data-games='poker, dice' data-payments='visa, cash'></tr>

Я фильтрую их с помощью ввода флажка, который сохраняет значение в массиве, который ищется с помощью карты регулярных выражений, которая берет каждое слово в массиве и говорит, находится ли это слово в соответствующем Data-attr, затем показывает эту строку.

//On Checkbox input add/remove the input to an object
$("#filterDiv .gamesList").delegate("input[type='checkbox']", 'change', function() {
var $this = $(this);
 if ($this.prop('checked')) {
     delete gameBoxes['all'];
     gameBoxes[$this.attr('name')] = $this.val();
    gameFilters+=1;
    }
    else {
        delete gameBoxes[$this.attr('name')];
        gameFilters -=1;
    }

    //Take all checkbox values from object
        Object.values = function(object) {
        var values = [];
            for(var property in object) {
                values.push(object[property]);
                }
        return values;
    }
        var val = Object.values(gameBoxes);

    //hide rows that dont match the regApproved strings
    $(".loading tr").hide().filter(function() {

        var rtnData = "";

        var regApproved=    new RegExp(val.map(x => x.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&')).join('|'), 'i');
            rtnData = (

            $(this).attr("data-games").match(regApproved)
            );


    return rtnData;

    }).fadeIn("fast");

});

Мне просто интересно, как лучше объединить этот фильтр с другим.

Я думаю, что, возможно, создайте переменную, например (gameFilters / payFilters), которая станет положительной при нажатии 1 фильтра, а затем, если эта переменная положительная, возьмите переменную regApproved из другого фильтра, чтобы также применить ее к текущему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...