在jQuery中将JSON数组转换为HTML表

2024-03-19 10:34:50 发布

您现在位置:Python中文网/ 问答频道 /正文


Tags: python
3条回答

使用jQuery将使这更简单。

下面将获取数组数组并将其存储转换为行和单元格。

$.getJSON(url , function(data) {
    var tbl_body = "";
    var odd_even = false;
    $.each(data, function() {
        var tbl_row = "";
        $.each(this, function(k , v) {
            tbl_row += "<td>"+v+"</td>";
        })
        tbl_body += "<tr class=\""+( odd_even ? "odd" : "even")+"\">"+tbl_row+"</tr>";
        odd_even = !odd_even;               
    })
    $("#target_table_id tbody").html(tbl_body);
});

您可以通过添加以下内容来添加对要排除的密钥的检查

var expected_keys = { key_1 : true, key_2 : true, key_3 : false, key_4 : true };

在getJSON回调函数的开头并添加:

if ( ( k in expected_keys ) && expected_keys[k] ) {
...
}

在tbl_行+=行周围。

编辑:以前分配过空变量

编辑:基于Timmmminjection-free贡献的版本。

$.getJSON(url , function(data) {
    var tbl_body = document.createElement("tbody");
    var odd_even = false;
    $.each(data, function() {
        var tbl_row = tbl_body.insertRow();
        tbl_row.className = odd_even ? "odd" : "even";
        $.each(this, function(k , v) {
            var cell = tbl_row.insertCell();
            cell.appendChild(document.createTextNode(v.toString()));
        })        
        odd_even = !odd_even;               
    })
    $("#target_table_id").appendChild(tbl_body);
});

通过扩展$从JSON对象数组生成HTML表,如下所示

$.makeTable = function (mydata) {
    var table = $('<table border=1>');
    var tblHeader = "<tr>";
    for (var k in mydata[0]) tblHeader += "<th>" + k + "</th>";
    tblHeader += "</tr>";
    $(tblHeader).appendTo(table);
    $.each(mydata, function (index, value) {
        var TableRow = "<tr>";
        $.each(value, function (key, val) {
            TableRow += "<td>" + val + "</td>";
        });
        TableRow += "</tr>";
        $(table).append(TableRow);
    });
    return ($(table));
};

使用方法如下:

var mydata = eval(jdata);
var table = $.makeTable(mydata);
$(table).appendTo("#TableCont");

TableCont是一个div

我不确定这是不是你想要的,但是有jqGrid。它可以接收JSON并生成一个网格。

相关问题 更多 >