fnCallback(sdata);返回空数组jquery.dataTables.js:39 Uncaught TypeError: Cannot read properties of undefined (reading 'length')
时间: 2023-07-08 08:47:58 浏览: 133
C章习题答案图文稿.docx
如果 fnCallback 在接收到空数组时报错,可能是因为 DataTables 的版本问题。在 DataTables 1.10 之前,fnCallback 接收到空数组时会报错,而在 DataTables 1.10 及之后的版本中,fnCallback 不会报错,但是会显示 No data available in table。如果你使用的是 DataTables 1.10 及之后的版本,可以将空数组作为参数传入 fnCallback,例如:
```
success: function(resp) {
var sdata = resp;
console.log(resp);
if (Object.keys(resp).length === 0) {
sdata = []; // 将 sdata 设置为空数组
}
fnCallback(sdata);
}
```
这样做的效果是,如果返回的数据为空对象,则将 sdata 设置为空数组,然后传入 fnCallback。这样 DataTables 就会显示 No data available in table。如果返回的数据不为空,则直接将 resp 作为参数传入 fnCallback。如果你使用的是 DataTables 1.10 之前的版本,可以将空数组转换为一个有一定长度的数组,例如:
```
success: function(resp) {
var sdata = resp;
console.log(resp);
if (Object.keys(resp).length === 0) {
sdata = [null]; // 将 sdata 设置为一个有一定长度的数组
}
fnCallback(sdata);
}
```
这样做的效果是,如果返回的数据为空对象,则将 sdata 设置为一个有一定长度的数组,然后传入 fnCallback。这样 DataTables 就不会报错了。如果返回的数据不为空,则直接将 resp 作为参数传入 fnCallback。
阅读全文