使用jQuery从JSON填充表
这是使用jQuery从JSON数据填充表的有效方法,还是有更好/更低成本的方法? 最大行数约为100.我不想使用插件。
JS:
$.ajax({ url: 'public.json', dataType: 'json', success: function(data) { var row = ''; for (var i in data.headers) { row += '' + data.headers[i] + ' '; } row += ' ' $(row).appendTo('table.data'); row = ''; for (var i in data.rows) { row += ''; row += '' + data.rows[i].date + ' '; row += '' + data.rows[i].company + ' '; row += '' + data.rows[i].location + ' '; ... row += ' '; } $(row).appendTo('table.data'); }, });
JSON:
{ "headers": { "date": "Date", "company": "Company", "location": "Location", ... }, "rows": [{ "date": "09/18/2011", "company": "Company name", "location": "US", ... }, ... }
编辑:基本上,我试图找出是否将所有行集中到一个字符串,将其转换为jQuery对象,然后将其附加到表是一个好主意,假设这可以在页面上多次完成刷新数据。
我将使用jQuery.each()
函数 ,而不是for
.. in
语法和字符串构建
像这样:
$.ajax({ url: 'public.json', dataType: 'json', success: function(data) { var $tr =$('').addClass('header'); $.each(data.headers, function(i,header){ $tr.append($('').append($('a').addClass('sort').attr('href','#').append($('span').text(header)))); }); $tr.appendTo('table.data'); $.each(data.rows,function(i,row){ $(' ').attr('id',i). append($('').text(row.date)). append($(' ').text(row.company)). append($(' ').text(row.location)).appendTo('table.data'); }); } });