使用带有if语句的DataTable()。search()

时间:2017-02-19 19:59:58

标签: javascript jquery datatable tablefilter

我遇到了Datatable()。search()函数的问题。 我希望得到的是,当我输入以" x:"开头的东西时然后我想过滤索引为1的列,在其他情况下,它应该过滤列0。

我还没有发现任何与我类似的问题。也许DataTable()无法进行这样的操作?

谢谢你的时间!

这是我的js代码:

     function filterName() {

                    var regularExpression = $('.column_filter').val();
                    var columnNum = 0;

                    if (regularExpression[0] == 'x' && regularExpression[1] == ':') {
                        columnNum = 1;
                        regularExpression = regularExpression.substring(3, regularExpression);
                    } else {
                        columnNum = 0;
                    }

                    if (regularExpression[regularExpression.length - 1] == ' ') {
                        regularExpression = regularExpression.substring(0, regularExpression.length - 1);
                    }
                    regularExpression = regularExpression.replace(/\s/g, "|");

                    $('#table')
                        .DataTable()
                        .column(columnNum)
                        .search(
                            regularExpression,
                            true,
                            false
                        )
                        .draw();
                }

             $('#table')
                        .DataTable({
                            "paging": false,
                            "ordering": false,
                            "info": false,
                            "autoWidth": false,
                            "sDom": '<"top"i>rtlp'

                        });
                    $('.column_filter')
                        .on('keyup click',
                            function () {
                                filterName();
                            });

1 个答案:

答案 0 :(得分:0)

好的,我找到了解决方案。 我必须清除搜索功能。

我补充说:

   $('#table')
              .DataTable()
              .columns()
              .search('');

之前:

         $('#table')
                    .DataTable()
                    .column(columnNum)
                    .search(
                        regularExpression,
                        true,
                        false
                    )
                    .draw();