Хотите объяснить, как работает функция поиска в Datatables? - PullRequest
0 голосов
/ 17 октября 2019

Мне нужно, чтобы мои Datatables имели поиск по столбцу, а у некоторых есть выбор вариантов поиска и некоторый свободный ввод текста. Я следовал за некоторыми примерами поиска на сайте Datatables, и код работал нормально, но я понятия не имею, как работают некоторые вызовы. Функция вызывается после завершения init.

Спасибо,

1) что это делает ??? var val = $ .fn.dataTable.util.escapeRegex ($ (this) .val ());

2) почему регулярное выражение используется для поиска ??? column .search (val? '^' + val + '$': '', true, false) .draw ();});

3) почему это сравнение ??? if (that.search ()! == this.value) {

    function () {
        this.api().columns().every( function (idx) {
            var column = this;
            if (idx == 1 || idx == 3) {

            var select = $('<select><option value=""></option></select>')
                .appendTo( $(column.footer()).empty() )
                .on( 'change', function () {
                    var val = $.fn.dataTable.util.escapeRegex(
                        $(this).val()
                    );  // **** what does this do ??? ****

                    column
                        .search( val ? '^'+val+'$' : '', true, false ) // **** why regex is used for search ??? ***
                        .draw();
                } );

            column.data().unique().sort().each( function ( d, j ) {
                select.append( '<option value="'+d+'">'+d+'</option>' )
            } );
        } else {
            if (idx == 0) $(column.footer()).html('<input disabled type="text" placeholder="Disabled" />' );
            else $(column.footer()).html('<input type="text" placeholder="Search" />' );
            var that = this;
            $( 'input', this.footer() ).on( 'keyup change clear', function () {
                if ( that.search() !== this.value ) {  // ****why this comparison ??? ****
                    that
                        .search( this.value )
                        .draw();
                }
            } );
        }
        } );
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...