使用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'); }); } });