想要解释数据表搜索功能的工作原理

时间:2019-10-17 06:05:38

标签: javascript datatables

我需要我的数据表具有按列搜索,并且一些具有选择搜索选项和一些自由文本输入。我在Datatables网站上跟踪了一些搜索示例,并且代码工作正常,但是我不知道某些调用的工作方式。初始化完成后将调用该函数。

谢谢

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

0 个答案:

没有答案