为什么浏览器控制台日志给我错误“数据表不是函数”?

时间:2019-04-14 04:51:46

标签: jquery laravel datatable

我在代码中使用了数据表。在我的网页上,当我单击将显示数据表时,有一个链接。到此为止,我的代码可以正常工作,但是没有响应,所以我还在代码中添加了所需的数据表脚本,但是当我看到控制台日志时,它显示了错误,表明数据表不是函数。我正在使用laravel,下面是我添加的数据表链接。

$(document).ready(function(){
    $('#exam-result-table').DataTable();
});

$('#show-results').click(function(event) {     
   //alert('hiiii');   
        $.ajax({
                headers: {'X-CSRF-TOKEN': token},
                type: 'POST',
                url: ExamResults,
                contentType: 'application/json; charset=utf-8',
                dataType: 'json',
                async: false,
        error: function(data){

          },
        success: function(data) {
          console.log("success");
          },
        })
        .done(function (msg) {
            $("#main-exam").empty();
            $('#main-exam').append(msg);
            $('#exam-result-table').DataTable();
        });
});

数据表正在显示,但我没有找到导致控制台日志出现错误以及数据表没有响应的原因。

  

未捕获的TypeError:$(...)。DataTable不是函数
  at Object.error(exam_homepage.js:166)
  在你(app.js:3)
  at Object.fireWith [as rejectWith](app.js:3)
  在r(app.js:4)
  在XMLHttpRequest。 (app.js:4)
  在Object.send(app.js:4)
  在Function.ajax(app.js:4)
  在HTMLSpanElement。 (exam_homepage.js:155)
  在HTMLSpanElement.dispatch(jquery.js:3074)
  在HTMLSpanElement.elemData.handle(jquery.js:2750)

1 个答案:

答案 0 :(得分:1)

您可能需要使用错误版本的jQuery。 尝试要求包含jQuery的dataTable版本或在dataTable之前要求jQuery 3。

您可以在此处创建/下载数据表: https://datatables.net/download/index

例如。这是带有jQuery 3的dataTable:

<script type="text/javascript" src="https://cdn.datatables.net/v/dt/jq-3.3.1/dt-1.10.18/datatables.min.js"></script>

您也可以这样做(顺序很重要):

<script src="https://code.jquery.com/jquery-3.4.0.min.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/v/dt/dt-1.10.18/datatables.min.js"></script>

您不应该在同一页面上使用其他jQuery。