Javascript jQuery数据表“;表”中没有可用数据;在分拣时,将折叠起来
我现在也有这个错误。并根据帖子修改了代码,但仍然得到“表中没有可用数据。此外,我添加了排序按钮,但是,当单击表向上滚动时,无法取消滚动。不确定为什么这不起作用。提前感谢 我的jquery函数是Javascript jQuery数据表“;表”中没有可用数据;在分拣时,将折叠起来,javascript,jquery,datatables,Javascript,Jquery,Datatables,我现在也有这个错误。并根据帖子修改了代码,但仍然得到“表中没有可用数据。此外,我添加了排序按钮,但是,当单击表向上滚动时,无法取消滚动。不确定为什么这不起作用。提前感谢 我的jquery函数是 $(function () { $.ajax({ method: "GET", url: URL + '/rents/' + getParameterByName('id') , dataType: "json",
$(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 = $('<tr>').append(
$('<td>').text(moment(item.datePaid).format ('DD-MMM-YYYY')),
$('<td>').text(item.paymentType),
$('<td>').text('$'+item.amountPaid),
$('<td>').text('$0.00')
).appendTo('#datatable tbody')}
})
$('#datatable').DataTable();
})
.fail(function( xhr, status, errorThrown ) {
console.log( "Error: " + errorThrown );
console.log( "Status: " + status );
console.dir( xhr );
})
})
问题是您试图用ajax做的事情太多了。您可以使用以下方法:
它让DataTables做自己的事情,了解数据。DataTables有自己的ajax和列排序,所以我不知道为什么要使用jQuery的ajax。请打印ajax调用中的数据片段,好吗?尝试在ajax done function>>data=JSON.parse(data)中解析数据;我尝试过使用DataTables Ajx方法,但得到了相同的问题答案,这很有帮助,而且我让它工作了,为什么纯Jquery方法不起作用呢?因为DataTables将数据的副本保存到它自己,所以要更改它,你需要使用它的API。它需要各种输入来创建表,甚至是原始HTML表,以及如果您在ajax下载了所有数据并将其作为HTML添加到表中之后初始化了DataTable,那么这种方法就可以工作了。
<table id="datatable" class="table table-striped table-bordered">
<thead>
<tr>
<th>Date</th>
<th>Payment</th>
<th>Amount</th>
<th>Balance</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
{
"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"
}
]
}
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"
}
}]
});