为什么dataTable搜索仅处理表的第一行

时间:2018-01-16 07:38:30

标签: javascript jquery datatables

我有import { Injectable } from '@angular/core'; import * as FileSaver from 'file-saver'; import * as XLSX from 'xlsx'; const EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8'; const EXCEL_EXTENSION = '.xlsx'; @Injectable() export class ExcelService { constructor() { } public exportAsExcelFile(json: any[], excelFileName: string): void { const worksheet: XLSX.WorkSheet = XLSX.utils.json_to_sheet(json); const workbook: XLSX.WorkBook = { Sheets: { 'data': worksheet }, SheetNames: ['data'] }; const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'buffer' }); this.saveAsExcelFile(excelBuffer, excelFileName); } private saveAsExcelFile(buffer: any, fileName: string): void { const data: Blob = new Blob([buffer], { type: EXCEL_TYPE }); FileSaver.saveAs(data, fileName + '_export_' + new Date().getTime() + EXCEL_EXTENSION); } } ,其搜索仅在dataTable的{​​{1}} {。}}。

  

问题:为什么搜索不在每一行都有效,它只代表第一行?为什么

为了更清晰,请参阅 jsFiddle https://jsfiddle.net/pkxmnh2a/30/

段:



row

table

$(document).ready(function () {
    var table = $('#examples').DataTable();
    $('a.toggle-vis').on('click', function (e) {
        e.preventDefault();

        var column = table.column($(this).attr('data-column'));
        column.visible(!column.visible());
    });

    $('#examples tfoot th').each(function () {
        var title = $('#examples thead th').eq($(this).index()).text();
        $(this).html('<input tyepe="text" placeholder="Search ' + title + '"/>');
    });

    table.columns().eq(0).each(function (colIdx) {
        $('input', table.column(colIdx).footer()).on('keyup change', function () {
            table.column(colIdx)
                 .search(this.value)
                 .draw();
        });
    });
});
&#13;
&#13;
&#13;

请提前帮助我!!

1 个答案:

答案 0 :(得分:1)

我会说你应该在这里使用rowspancolspan来表示你的表格(所以在网上使用两个<tr>)这可以帮助你在你的表格中没有使用多个<tbody>(实际上你 在表格中使用一个 <tbody></tbody>以上),可以使用正确的表格如下:

 <table>
   <thead>
     <tr>
       <th>Header column A<th>
       <th>Header column B<th>
     </tr>
   </thead>
   <tbody>
     <tr>
       <td>Content column A Row 1<td>
       <td>Content column B Row 1<td>
     </tr>
   </tbody>
   <tfoot>
   </tfoot>
 </table>
相关问题