Javascript jquery datatables column.data未定义

Javascript jquery datatables column.data未定义,javascript,jquery,jquery-datatables,Javascript,Jquery,Jquery Datatables,我正在使用datatable的行分组功能,下面是我的drawcallback函数: oTable = jQuery_1_11('#example').dataTable({ "searching": false, "processing": true, "serverSide": true, "iDisplayLength": 20, "sPaginationType": "full_numbers", "language": {"infoFiltered": ""}, columnDefs:

我正在使用datatable的行分组功能,下面是我的drawcallback函数:

oTable = jQuery_1_11('#example').dataTable({
"searching": false,
"processing": true,
"serverSide": true,
"iDisplayLength": 20,
"sPaginationType": "full_numbers",
"language": {"infoFiltered": ""},
columnDefs: [{
        targets: 0,
        "visible": false,
    }],
"ajax": {
    "url": "index.php?entryPoint=getTableData",
    "dataType": 'json',
    "pages": "5",
    "type": "POST",
    "data": function(d) {
        d.dbJson = sendJson
    },
    "dataSrc": function(response) {
        return response.aaData;

    }
},
"drawCallback": function(  ) {

    var api = this.api();
    var rows = api.rows({page: 'current'}).nodes();
    var last = null;
    api.column(0, {page: 'current'}).data().each(function(group, i) {
        if (last !== group) {
            jQuery_1_11(rows).eq(i).before(
                    '<tr class="group"><td colspan="5">' + group + '</td></tr>'
                    );
            last = group;
        }
    });
}

})
这是一个错误:

未捕获的TypeError:无法读取未定义的属性“each”


请帮忙

在ajax调用返回之前调用drawCallback。它在第一个表初始化事件中调用,也在ajax回调中调用。 如果在操作.data()值之前插入类型检查,它将不会在第一次绘制事件时崩溃,并且将在ajax回调上运行

    function(  ) {

    var api = this.api();
    var rows = api.rows({page: 'current'}).nodes();
    var last = null;
    if(typeof api.column(0, {page: 'current'}).data() !=="undefined"){
       api.column(0, {page: 'current'}).data().each(function(group, i) {
           if (last !== group) {
               jQuery_1_11(rows).eq(i).before(
                    '<tr class="group"><td colspan="5">' + group + '</td></tr>'
                    );
               last = group;
        }
    });
  }
}
函数(){
var api=this.api();
var rows=api.rows({page:'current'}).nodes();
var last=null;
if(api.column(0,{page:'current'}.data()!==“未定义”){
列(0,{page:'current'}).data().each(函数(组,i){
如果(最后!==组){
jQuery_1_11(行).eq(i).before(
''+组+''
);
last=组;
}
});
}
}

希望它能有所帮助:)

这通过更改为最新版本的DataTables 1.10.6起到了作用。 以前我使用的是数据表1.10.6-dev

在jquery.dataTables.js文件中,您可以检查当前使用的第一行内容

通过改变

jQuery_1_11('#example').dataTable


谢谢大家的帮助:)

它始终未定义,因此不会处于IF()状态。因此,如果从初始化中删除drawCallback属性,表是否加载ajax检索的数据?是,但不分组。实际上,该表并没有在页面加载时初始化,它实际上是用jqueryjstree绑定的。当用户单击jstree的任何节点时,表都会被初始化并动态创建。您能设置一个小提琴来重现错误吗?代码可以立即工作,因此您必须有其他导致错误的原因。顺便说一句,为什么不使用现有的行分组插件呢?尝试将
jQuery\u 1\u 11(“#示例”).dataTable
更改为
jQuery\u 1\u 11(“#示例”).dataTable
加上大写字母
D
。您试图访问的API来自1.10+版本,该版本使用大写字母
D
.jQuery_1_11(“#示例”)进行初始化。DataTable也不起作用。实际上,该表在页面加载时未初始化,它实际上与jQuery jstree绑定。当用户单击jstree的任何节点时,该表将被初始化并动态创建。@davidkonrad您能否详细介绍一下现有的rowgrouping插件。
jQuery_1_11('#example').dataTable
jQuery_1_11('#example').DataTable