jQuery DataTables“表中没有数据”并且在排序时表格折叠

我现在也有这个错误,因为这篇文章 “。 并根据post修改了代码,但仍然得到“表格中没有数据。此外,我已经添加了排序按钮,但是,当点击表格卷起来时,没有办法解开它。不知道为什么这不行。提前谢谢

我的jquery函数是

$(function () { $.ajax({ method: "GET", url: URL + '/rents/' + getParameterByName('id') , dataType: "json", cache: false, }) .done(function (data) { rentResponse = data.rent $.each(rentResponse, function(i, item) { if (item.activeEntry) { var $tr = $('').append( $('').text(moment(item.datePaid).format ('DD-MMM-YYYY')), $('').text(item.paymentType), $('').text('$'+item.amountPaid), $('').text('$0.00') ).appendTo('#datatable tbody')} }) $('#datatable').DataTable(); }) .fail(function( xhr, status, errorThrown ) { console.log( "Error: " + errorThrown ); console.log( "Status: " + status ); console.dir( xhr ); }) }) 

和HTML是

 
Date Payment Amount Balance

这是我正在使用的JSON

 { "rent": [ { "_id": "5895a925cf8fd70011ceb6ab", "tenantID": "589416dd63998500117d9281", "amountPaid": 190, "__v": 0, "paymentType": "Rent", "activeEntry": true, "datePaid": "2017-02-11T00:00:00.000Z" }, { "_id": "5895a91fcf8fd70011ceb6aa", "tenantID": "589416dd63998500117d9281", "amountPaid": 190, "__v": 0, "paymentType": "Rent", "activeEntry": true, "datePaid": "2017-02-04T00:00:00.000Z" }, { "_id": "5895a916cf8fd70011ceb6a9", "tenantID": "589416dd63998500117d9281", "amountPaid": 190, "__v": 0, "paymentType": "Rent", "activeEntry": true, "datePaid": "2017-01-28T00:00:00.000Z" }, { "_id": "5895a90ecf8fd70011ceb6a8", "tenantID": "589416dd63998500117d9281", "amountPaid": 190, "__v": 0, "paymentType": "Rent", "activeEntry": true, "datePaid": "2017-01-21T00:00:00.000Z" }, { "_id": "5895a902cf8fd70011ceb6a7", "tenantID": "589416dd63998500117d9281", "amountPaid": 190, "__v": 0, "paymentType": "Rent", "activeEntry": true, "datePaid": "2017-01-14T00:00:00.000Z" }, { "_id": "5895a8f8cf8fd70011ceb6a6", "tenantID": "589416dd63998500117d9281", "amountPaid": 190, "__v": 0, "paymentType": "Rent", "activeEntry": true, "datePaid": "2017-01-07T00:00:00.000Z" } ] } 

第一次加载时的表

按下排序按钮时的表格

问题是你试图用你的ajax做太多。 你可以使用这样的东西:

 let datatable = $("#datatable").DataTable({ "ajax": { "type": "POST", "url": "/echo/json/", "dataType": "json", "dataSrc": "rent", "data": { "json": JSON.stringify(jsonData) } }, "columns": [{ "title": "Date", "data": "datePaid", "render": function(d) { return moment(d).format("DD-MMM-YYYY") } }, { "title": "Payment", "data": "paymentType" }, { "title": "Amount", "data": "amountPaid", "render": function(d) { return "$" + d } }, { "title": "Balance", "render": function() { return "$0.00" } }] }); 

这让DataTables做了自己的事情,并了解数据。