当前位置: 首页 > 知识库问答 >
问题:

Datatables插件错误Uncaught TypeError:无法读取未定义的属性“mData”

艾英范
2023-03-14

我正在使用jquerydatatables插件。分页不起作用,所以我尝试在使用ajax/jQuery添加行之后初始化datatable,希望在添加所有行并初始化datatable之后,它会起作用。但我得到了一个错误:

 "Uncaught TypeError: Cannot read property 'mData' of undefined."

我只想分页工作,所以我甚至不确定在通过jQuery添加行时这是否是正确的方法

HTML

<table id="table" class="table-striped" style="width:100%">
    <thead>
        <tr>
        <td>Date</td>
        <td>Route</td>
        <td></td>
        </tr>
    </thead>
    <tbody id="tablebody">
    </tbody>
</table>

jQuery

function loadfromDB(event) {
var uid = $('#uid').val();

        $.ajax({
            type: "POST",
            url: "getplans.php",
            data: {uid:uid},
            dataType: 'json',
            cache: false,
        })
        .success(function(response) {
            $('input').removeClass('error').next('.errormessage').html('');
            if(!response.errors && response.result) {
                 $.each(response.result, function( index, value) {
                   $("#tablebody").append('<tr><td>'+value[4]+'</td><td>'+value[2]+'</td><td>'+value[3]+'</td></tr>');

                  }); 
             $('#table').DataTable();
            } 

            else {
                $.each(response.errors, function( index, value) {
                    // add error classes
                    $('input[name*='+index+']').addClass('error').after('<div class="errormessage">'+value+'</div>')
                });
            }
        });

}   

共有2个答案

尚俊楠
2023-03-14

>

在init之后添加数据。这很简单。我给你举个例子:

var myTable = $('#myTableId')。DataTable({/*...在这里设置选项 */ });

a) 确保您从服务器返回了一个有效的JSON,对应于输入您的datatbles expect b)modif。在响应的成功回调中接收和解析JSON(c)的ajax请求:

    // this 2 lines to recive and parse JSON
    dataType: 'json',
    contentType: "application/json",

    success: function(json) {

     // first, empty the table:
     myTable.clear();

     // add the data and redraw the table:
     myTable.rows.add(json).draw();


    }
程胤运
2023-03-14

检查表结构,确保表标题与表单元格相同。

<table>
    <thead>
        <tr>
            <th>header 1</th>
            <th>header 2</th>
            <th>header 3</th>
        </tr>
    <thead>
    <tbody>
        <tr>
            <td>table cell 1</td>
            <td>table cell 2</td>
            <td>table cell 3</td>
        </tr>
    </tbody>
<table>
 类似资料:
  • 我创建了这个小提琴,它按照我的要求工作得很好:小提琴 然而,当我在我的应用程序中使用相同的时,我在浏览器控制台中得到一个错误,说无法读取未定义的属性'aDataSort' 在我的应用程序中,javascript的内容如下:我已经检查了控制器输出。。。它运行良好,也打印在控制台上。

  • 问题内容: 我是Reactjs的新手。我正在尝试做一个非常简单的事情:当用户在文本区域内更改文本时,在render函数中更新div。有什么建议? 问题答案: 您应该绑定该函数。您收到此错误的原因是,在handleChange函数中,键盘操作未引用React类的上下文,因此您需要绑定该函数。 看到这个答案

  • 我搜索了这个网站,发现了类似的问题,但没有解决我的问题。当我滚动到一个div时,我试图使它固定在屏幕顶部。但我一直在犯错误: "(index): 59未捕获类型错误:无法读取未定义的属性'top'at(index): 59" 我还在学习jQuery,不能解决这个问题。

  • 问题内容: 我正在使用jQuery将表单字段发布到PHP文件,该文件仅根据是否工作而返回1/0。 代码摘录: 但是,每次成功(html == 1)时,控制台都会引发错误“未捕获的TypeError:无法读取未定义的属性’defaultView’”,并且警报永远不会发生…? Google似乎没有关于此错误和jQuery的大量信息,谁知道原因? 问题答案: 这是因为以前不是您要处理的内容,现在是jQu

  • 我的代码: 错误: 未处理PromisejectionWarning:TypeError:无法读取未定义的未处理PromisejectionWarning:未处理的promise拒绝的属性“forEach”。此错误源于在没有catch块的情况下抛出异步函数的内部,或者拒绝使用未处理的promise。catch()。(拒绝id:1)(节点:7188)[DEP0018]弃用警告:未处理的promise

  • 我正在尝试集成一个Datatable插件(https://www.npmjs.com/package/vuejs-datatable)在我的Vue应用程序中,我的控制台出现了一个错误。 我的dataTable.vue文件: 每当我尝试使用Vue时。使用(PluginName)'当集成插件时,我会遇到类似的错误。我是VueJS的新手。有什么我需要做的吗?