【问题标题】:Uncaught TypeError: Cannot read property 'style' of undefined ONn Datatables未捕获的类型错误:无法读取未定义 ONn 数据表的属性“样式”
【发布时间】:2017-01-29 03:34:18
【问题描述】:

我有这样的代码

var monthNames = ["January", "February", "March", "April", "May", "June",
                                      "July", "August", "September", "October", "November", "December"
                                    ];
                while (dateStart <= dateEnd) {
                    dateLoop.push({name : monthNames[dateStart.getMonth()] + ' ' +  dateStart.getFullYear() });
                    var newDate = dateStart.setDate(dateStart.getMonth() + 1);
                    dateStart.setMonth(dateStart.getMonth() + 1);
                }
var jsonArray = {"Columns":dateLoop};
                var columnArray = jsonArray['Columns']; 
                var titleArray = [];
                var title = {};
                title['title'] = "Buyer";
                titleArray.push(title);

                var i = 0;
                for ( 
                var j = 0; j < columnArray.length; j++) {
                    var temp2 = {};
                    temp2['title'] = columnArray[i]["name"];
                    titleArray.push(temp2);
                    i = i + 1;
                };

我用来在数据表上添加列的代码

$('#del-date').DataTable({ 
                    "filter": false,
                    "destroy": true,
                    "processing": true,
                    "serverSide": true,
                    "columns": titleArray,
                    "ajax":{
                        url : host+'qty/'+oderby+'?buyer='+buyer+'&dari='+begin+'&sampai='+end,
                        error: function(){  // error handling
                            console.log(error);
                        }
                    }
                }).draw();

首先我提交我的过滤器是按钮,工作正常并显示我想要的数据,但是当我更改过滤器时显示错误 Uncaught TypeError: Cannot read property 'style' of undefined

如何解决?对不起,我的语言不好。我依靠这段代码

更新:这个屏幕截图我收到错误

更新已解决!!!!我改成这样的代码:

$.ajax({
                    "url": host+'qty/'+oderby+'?buyer='+buyer+'&dari='+begin+'&sampai='+end,
                    "success": function(json) {
                        var tableHeaders;
                        $.each(json.columns, function(i, val){
                            tableHeaders += "<th>" + val + "</th>";
                        });

                        $("#tableDiv").empty();
                        $("#tableDiv").append('<table id="displayTable" class="dataTable table table-bordered table-hover table-full-width" cellspacing="0" width="100%"><thead><tr>' + tableHeaders + '</tr></thead></table>');
                        //$("#tableDiv").find("table thead tr").append(tableHeaders);  

                        $('#displayTable').dataTable(json);
                    },
                    "dataType": "json"
                });

我使用控制器和 mysql 来创建 json。问题解决。

【问题讨论】:

  • 是否可以创建一个jsfiddle?
  • @AneeshSivaraman : 我不能用 mysql 来做这个

标签: json ajax datatables


【解决方案1】:

当传递给列的 titleArray 的数量(“columns”:titleArray)小于您的表(tableHeaders)的列数时,就会发生这种情况。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-11
    • 2020-12-25
    • 1970-01-01
    • 1970-01-01
    • 2019-07-24
    • 1970-01-01
    相关资源
    最近更新 更多