html - 如何根据 API 的响应在引导表中动态添加一行?
问题描述
<table class="table table-condensed" id="binding-table>
<thead>
<tr>
<th>Rank</th>
<th>Content</th>
<th>UID</th>
</tr>
</thead>
<tbody>
<tr>
</tr>
</tbody>
</table>
在我的 main.js 文件中:
var response = '[{"rank":"ss9", "content":"Alon", "UID":"5" }]';
/* response += ',{"rank":"6","content":"Tala","UID":"6"}]'; */
response = $.parseJSON(response);
$(function () {
$.each(response, function (i, item) {
$('<tr>').append(
$('<td>').text(item.rank),
$('<td>').text(item.content),
$('<td>').text(item.UID)).appendTo('#binding-table');
});
});
我有从 API 返回的响应。我正在解析响应并根据响应动态添加行。就我而言,我在标签内犯了错误。有人可以帮助我我的错误在哪里吗?
解决方案
除了您在表 id 上缺少双引号这一事实之外,我认为您必须“缓存” tbody 元素的引用,因此您不必为每个循环都使用选择器,比如说,对于更大的 json .
也就像@Enter Strandman 向您建议的那样,对于这种情况,最好使用datatables.net
var response = '[{"rank":"ss9", "content":"Alon", "UID":"5" },{"rank":"6","content":"Tala","UID":"6"}]';
response = $.parseJSON(response);
$(function () {
var tbody = $('#table_body');
$.each(response, function (i, item) {
$('<tr>').append(
$('<td>').text(item.rank),
$('<td>').text(item.content),
$('<td>').text(item.UID)).appendTo(tbody);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table class="table table-condensed" id="binding-table">
<thead>
<tr>
<th>Rank</th>
<th>Content</th>
<th>UID</th>
</tr>
</thead>
<tbody id="table_body">
</tbody>
</table>
推荐阅读
- maven - 使用 maven 修改 POM 文件的设置以支持 Artifactory 上的访问令牌
- microsoft-graph-api - 当某个配置或策略停止应用于 intune 上的设备时,是否有办法获取警报
- swift - 命令行工具如何打印帮助文本并通过管道自动获取更多命令的行为?
- python - Django 仅返回默认图像 URL
- flutter - 在颤振中条件为真后如何弹出页面?
- javascript - EventListener 不能在 iframe 中工作,但可以在 iframe 之外工作
- node.js - 邮递员请求不起作用(Node.JS 和 MongoDB)
- r - 如何对R中的列进行滚动求和?
- oracle - 如何根据 Oracle Apex 中其他列的值启用或禁用列中的按钮?
- php - 注意:未定义索引:img in