输出中的数据表 json 问题:无法设置未定义的属性“nTf”
Posted
技术标签:
【中文标题】输出中的数据表 json 问题:无法设置未定义的属性“nTf”【英文标题】:Datatables json issue in output: Cannot set property 'nTf' of undefined 【发布时间】:2019-12-29 20:26:04 【问题描述】:我有以下代码将 JSON 数据放入数据表中。直接访问Json URL就可以了; JSON 已验证。然而,没有任何东西加载到表中。
是JS里面有什么东西还是CDN包含的顺序不对?根据几个例子,这应该有效。感谢您的帮助!
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous" type="text/css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/datatables/1.10.19/css/dataTables.bootstrap4.min.css" type="text/css">
<title>Table</title>
</head>
<body>
<table class="table table-hover table-stripe" id="example_table">
<thead>
<tr>
<td>User</td>
<td>Party</td>
<td>Agent</td>
</tr>
</thead>
<tfoot>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tfoot>
</table>
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous" type="text/javascript">
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous" type="text/javascript">
</script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous" type="text/javascript">
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/datatables/1.10.19/js/dataTables.bootstrap4.min.js" type="text/javascript">
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/datatables/1.10.19/js/jquery.dataTables.min.js" type="text/javascript">
</script>
<script type="text/javascript">
var example_table = $('#example_table').DataTable(
ajax:
url: 'json_user.php', // the url to get data from
dataSrc: function(data)
return data.data; // returning the source of the data (it requires an array of data)
,
columns: [
data: "USERID" // 1st column will render the "id" from data
,
data: "PARTYID" // 2nd column will render the "name" from data
,
data: "Agent" // 3rd column will render the "position" from data
]
);
</script>
</body>
</html>
我的 JSON 看起来像这样:
"data": [
"PARTYID": "9999",
"USERID": "oaeg",
"REG_DATE": "2017-04-11 10:19:24",
"LAST_DEPOSIT_DATE": null,
"LAST_DEPOSIT_AMOUNT": null,
"LAST_WITHDRAW_DATE": null,
"LAST_WITHDRAW_AMOUNT": null,
"AgentID": null,
"Agent": "John"
,
"PARTYID": "1000001",
"USERID": "Master",
"REG_DATE": "2019-03-08 16:03:52",
"LAST_DEPOSIT_DATE": null,
"LAST_DEPOSIT_AMOUNT": null,
"LAST_WITHDRAW_DATE": null,
"LAST_WITHDRAW_AMOUNT": null,
"AgentID": null,
"Agent": null
,
// ...
]
【问题讨论】:
【参考方案1】:控制台的第一个错误:
无法设置未定义的属性“nTf”
是因为您在页脚中的td
元素比在表格的其余部分中的要多。修复后,您会收到此错误:
TypeError: h.ajax 不是函数
这是因为您使用的是 jQuery 的“slim”分支,它删除了很多功能,主要与动画和 AJAX 相关。后者是此工作所必需的。因此你需要使用完整版的jQuery:
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
一旦您解决了这些问题,您的代码应该可以正常工作,假设 JSON 按预期返回。
【讨论】:
以上是关于输出中的数据表 json 问题:无法设置未定义的属性“nTf”的主要内容,如果未能解决你的问题,请参考以下文章
NestJS/TypeORM:无法读取未定义的属性“createQueryBuilder”
NextJS:TypeError:无法读取未定义的属性“json”
无法读取未定义 discord.js 的属性“名称”尝试读取 json 中的数组