Javascript 根据循环中的类型进行列筛选

Javascript 根据循环中的类型进行列筛选,javascript,datatables,Javascript,Datatables,我正在使用作为参考进行列过滤,这就是我正在做的,它工作得很好 $(document).ready(function() { var table; // DataTable table = $('#example').dataTable({ "processing": true, stateSave: true, "deferRender

我正在使用作为参考进行列过滤,这就是我正在做的,它工作得很好

$(document).ready(function() {
         var table;
         // DataTable               
         table = $('#example').dataTable({
             "processing": true,
             stateSave: true,
             "deferRender": true, // to make the search fast         

             "dom": 'C<"clear">Rfltipr', // for column Re-odering and column visibilty.  

             "ajax": {
                 "url": "/my/example.so",
                 "type": "GET"
             },
             "columns": [{
                 "title": "name",
                 "data": "name",
                 "name": "name"
             }, {
                 "title": "addeddate",
                 "data": "addeddate",
                 "name": "added date"
             }]
         });
         table.columnFilter({
                 sPlaceHolder: "head:before",
                 aoColumns: [{
                         type: "text"
                     }, {
                         type: "date-range",
                         bRegex: true,
                         bSmart: true
                     }
                 }
             ]
         }); 

         $.datepicker.regional[""].dateFormat = 'yy-mm-dd';
         $.datepicker.setDefaults($.datepicker.regional['']);
我有多个列,所以我们如何在这里使用循环来实现它

$(document).ready(function() {
         var table;
         // DataTable               
         table = $('#example').dataTable({
             "processing": true,
             stateSave: true,
             "deferRender": true, // to make the search fast         

             "dom": 'C<"clear">Rfltipr', // for column Re-odering and column visibilty.  

             "ajax": {
                 "url": "/my/example.so",
                 "type": "GET"
             },
             "columns": [{
                 "title": "name",
                 "data": "name",
                 "name": "name"
             }, {
                 "title": "addeddate",
                 "data": "addeddate",
                 "name": "added date"
             }]
         });
         table.columnFilter({
                 sPlaceHolder: "head:before",
                 aoColumns: [{
                         type: "text"
                     }, {
                         type: "date-range",
                         bRegex: true,
                         bSmart: true
                     }
                 }
             ]
         }); 

         $.datepicker.regional[""].dateFormat = 'yy-mm-dd';
         $.datepicker.setDefaults($.datepicker.regional['']);
此外,这里我还需要为所有列编写标记,这在多列的情况下也不好第二种方法不适用于日期列设置-在每个单元格中添加文本输入

$(document).ready(function() {
         var table;
         // DataTable               
         table = $('#example').dataTable({
             "processing": true,
             stateSave: true,
             "deferRender": true, // to make the search fast         

             "dom": 'C<"clear">Rfltipr', // for column Re-odering and column visibilty.  

             "ajax": {
                 "url": "/my/example.so",
                 "type": "GET"
             },
             "columns": [{
                 "title": "name",
                 "data": "name",
                 "name": "name"
             }, {
                 "title": "addeddate",
                 "data": "addeddate",
                 "name": "added date"
             }]
         });
         table.columnFilter({
                 sPlaceHolder: "head:before",
                 aoColumns: [{
                         type: "text"
                     }, {
                         type: "date-range",
                         bRegex: true,
                         bSmart: true
                     }
                 }
             ]
         }); 

         $.datepicker.regional[""].dateFormat = 'yy-mm-dd';
         $.datepicker.setDefaults($.datepicker.regional['']);
var noofcolumn= $('#example thead th').length;
                    colmn="";

                    for(i=0; i<noofcolumn; i++)
                    {
                    var title = $('#example thead th').eq( i ).text();
                    colmn+='<th><input type="text" placeholder="Search '+title+'" /></th>';
                    }
                    $('#example tfoot').html( colmn );


                 // Apply the search

                    table.columns().every( function ()
                            {
                    $('input', this.footer() ).on( 'keyup change', function () {
                        table
                            .column( $(this).parent().index()+':visible' )
                            .search( this.value )
                            .draw();

                    } );

        });           

您可以在一个循环中生成一个对象数组,将其存储在一个变量中,并将其用作列和aoColumns选项的参数。您可以提供一个例子吗?我对javascripts非常陌生?列的数量是预先确定的还是动态的?如果是预先确定的,则不需要循环,只需向列和aoColumns数组添加更多列定义。这是预先确定的,我总共有40列。请参阅上面的代码我在上面的问题代码中添加了一些代码,我是通过循环执行的,但这不适用于日期列。