使用jQuery从JSON填充表

使用jQuery从JSON填充表,jquery,json,html-table,Jquery,Json,Html Table,这是使用jQuery用JSON数据填充表的有效方法,还是有更好/成本更低的方法?最大行数约为100。我宁愿不使用插件 JS: 编辑:从本质上讲,我试图弄清楚是否将所有行合并为一个字符串,将其转换为jQuery对象,然后将其附加到表中是一个好主意,假设可以在页面上多次执行此操作以刷新数据。而不是的在语法和字符串构建中,我将使用 像这样: $.ajax({ url: 'public.json', dataType: 'json', success: function(data

这是使用jQuery用JSON数据填充表的有效方法,还是有更好/成本更低的方法?最大行数约为100。我宁愿不使用插件

JS:


编辑:从本质上讲,我试图弄清楚是否将所有行合并为一个字符串,将其转换为jQuery对象,然后将其附加到表中是一个好主意,假设可以在页面上多次执行此操作以刷新数据。

而不是
语法和字符串构建中,我将使用

像这样:

$.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');
        });
    }
});
$.ajax({
url:'public.json',
数据类型:“json”,
成功:功能(数据){
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(数据行,函数(i,行){
$('').attr('id',i)。
追加($('').text(row.date))。
追加($('').text(row.company))。
append($('').text(row.location)).appendTo('table.data');
});
}
});

您是否研究过jQuery模板-?我认为建议使用测试版插件是不好的,因为生产原因可能会发生更改。@Floyd“这些文档主题涉及jQuery模板插件”。OP说他们不想用它。@lolwut和JamWaffles:我的错。我确实没有提到插件超出了范围。对于另一个问题,您的方法“先构建字符串,然后在一个调用中添加所有内容”确实比多次添加更有效。使用$。each而不是for…in有什么好处?我当时的印象是,美元每件都比……贵。你说得对。我不知道。您可以使用jQuery而不是字符串构建,但由于您的问题是关于费用,我想您的代码还可以。。。
{
    "headers": {
        "date": "Date",
        "company": "Company",
        "location": "Location",
        ...
    },
    "rows": [{
        "date": "09/18/2011",
        "company": "Company name",
        "location": "US",
        ...
    },
    ...
}
$.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');
        });
    }
});