【发布时间】:2011-12-01 21:01:54
【问题描述】:
这是使用 jQuery 从 JSON 数据填充表格的有效方法,还是有更好/成本更低的方法?最大行数约为 100。我不想使用插件。
JS:
$.ajax({
url: 'public.json',
dataType: 'json',
success: function(data) {
var row = '<tr class="header">';
for (var i in data.headers) {
row += '<th style=""><a href="#" class="sort"><span>' + data.headers[i] + '</span></a></th>';
}
row += '</tr>'
$(row).appendTo('table.data');
row = '';
for (var i in data.rows) {
row += '<tr id="' + i + '">';
row += '<td>' + data.rows[i].date + '</td>';
row += '<td>' + data.rows[i].company + '</td>';
row += '<td>' + data.rows[i].location + '</td>';
...
row += '</tr>';
}
$(row).appendTo('table.data');
},
});
JSON:
{
"headers": {
"date": "Date",
"company": "Company",
"location": "Location",
...
},
"rows": [{
"date": "09/18/2011",
"company": "Company name",
"location": "US",
...
},
...
}
编辑:本质上,我想弄清楚是否将所有行集中到一个字符串中,将其转换为一个 jQuery 对象,然后将其附加到表中是一个好主意,假设这个可以在页面上多次刷新数据。
【问题讨论】:
-
你看过 jQuery 模板 - api.jquery.com/category/plugins/templates 吗?
-
我不认为建议使用处于测试阶段且可能因生产原因而更改的插件。
-
@Floyd “这些文档主题涉及 jQuery 模板 插件”。 OP 表示他们不想使用一个。
-
@lolwut 和 JamWaffles:我的错。我确实错过了插件超出范围的提及。
-
An answer to another question表明您的方法“先构建字符串然后在一次调用中将其全部添加”确实比多次添加更有效。
标签: jquery json html-table