Jquery Datatable:f未在jquery.dataTables.min.js中定义

时间:2017-12-30 11:15:54

标签: javascript jquery datatables

我正在使用Jquery Datatables。我得到的f没有定义控制台错误。 我没有在Datatables中使用ajax请求。

以下是我的表:

<table id="myTable"  class="table table-striped table-bordered dataTable"  >

    <thead>
      <tr>
         <th>Trip ID</th>
         <th>User Name</th>
         <th>From</th> 
         <th>To</th>
     </tr>
    </thead>
    <tbody>
     <tr><td>123231</td></tr>
     <tr><td>John</td></tr>
     <tr><td>dfshggsf</td></tr>
     <tr><td>dsfgfsgfsg</td></tr> 
   </tbody>
    <tfoot>
         <tr>
          <th>Trip ID</th>
          <th>User Name</th>
          <th>From</th> 
          <th>To</th>       
         </tr>
    </tfoot> 
        </table>    
</table>

以下是Jquery代码:

$(document).ready(function(){
      $('#myTable').DataTable({

          'ordering':false,
            dom: 'Bfrtip',

            buttons:[
                 {
                     extend: 'excelHtml5',
                     title: 'Data export'
                 },
                 {
                     extend: 'pdfHtml5',
                     title: 'Data export'
                 },
                  {
                     extend: 'csvHtml5',
                     title: 'Data export'
                 },
                  {
                     extend: 'print',
                     title: 'Data export'
                 } 
           ]
        });
    });

以下是控制台错误:

TypeError:f未定义 [学到更多] jquery.dataTables.min.js:27:64 JB http://localhost:8080/RajaRathaDashBoardApp/resources/js/jquery.dataTables.min.js:27:64 GA http://localhost:8080/RajaRathaDashBoardApp/resources/js/jquery.dataTables.min.js:48:224 Ë http://localhost:8080/RajaRathaDashBoardApp/resources/js/jquery.dataTables.min.js:92:256 米/&LT; http://localhost:8080/RajaRathaDashBoardApp/resources/js/jquery.dataTables.min.js:92:342http://localhost:8080/RajaRathaDashBoardApp/resources/js/jquery-1.12.4.js:370:10http://localhost:8080/RajaRathaDashBoardApp/resources/js/jquery-1.12.4.js:137:10http://localhost:8080/RajaRathaDashBoardApp/resources/js/jquery.dataTables.min.js:82:457 h.fn.DataTable http://localhost:8080/RajaRathaDashBoardApp/resources/js/jquery.dataTables.min.js:164:289 http://localhost:8080/RajaRathaDashBoardApp/RajarathaTripHistory:38:4http://localhost:8080/RajaRathaDashBoardApp/resources/js/jquery-1.12.4.js:3232:11 fireWith http://localhost:8080/RajaRathaDashBoardApp/resources/js/jquery-1.12.4.js:3362:7 准备 http://localhost:8080/RajaRathaDashBoardApp/resources/js/jquery-1.12.4.js:3582:3 完成 http://localhost:8080/RajaRathaDashBoardApp/resources/js/jquery-1.12.4.js:3617:3

请帮我解决这个问题...任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

tbody部分中的表结构不正确。

更正的表格结构如下所示。

<tbody>
   <tr>
      <td>123231</td>
      <td>John</td>
      <td>dfshggsf</td>
      <td>dsfgfsgfsg</td>
   </tr> 
</tbody>

请参阅this example以获取代码和演示。

答案 1 :(得分:1)

是 - 这就是DataTables告诉你表结构不匹配的原因。最可能的解决方案是确保您的<th>行符合您的<td>行。

我昨晚遇到这个问题时,我发现last_name不是DataTables搜索框的一部分。 DataTables搜索列定义中提供的字段名称,而不是最终呈现的字段名称。所以我将last_name列添加为visible:false认为它不需要标题。看到相同的样式错误消息,不得不返回并添加到标题行=问题解决的最后。

var columns = [

  { data: "first_name",
    render: function(data, type, row) {
      return row.first_name + " " + row.last_name;
    }
  },
  { data: "last_name",
    visible: false
  },
...
]