Ale*_*lex 9 jquery json html-table
这是使用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');
},
});
Run Code Online (Sandbox Code Playgroud)
JSON:
{
"headers": {
"date": "Date",
"company": "Company",
"location": "Location",
...
},
"rows": [{
"date": "09/18/2011",
"company": "Company name",
"location": "US",
...
},
...
}
Run Code Online (Sandbox Code Playgroud)
编辑:基本上,我试图找出是否将所有行集中到一个字符串,将其转换为jQuery对象,然后将其附加到表是一个好主意,假设这可以在页面上多次完成刷新数据.
而不是for.. in语法和字符串构建,我会使用该jQuery.each()函数
像这样:
$.ajax({
url: 'public.json',
dataType: 'json',
success: function(data) {
var $tr =$('<tr>').addClass('header');
$.each(data.headers, function(i,header){
$tr.append($('<th>').append($('a').addClass('sort').attr('href','#').append($('span').text(header))));
});
$tr.appendTo('table.data');
$.each(data.rows,function(i,row){
$('<tr>').attr('id',i).
append($('<td>').text(row.date)).
append($('<td>').text(row.company)).
append($('<td>').text(row.location)).appendTo('table.data');
});
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19570 次 |
| 最近记录: |