如何在没有键的情况下在jquery中绑定json数据

问题描述 投票:-1回答:1

如何在表格中附加数据... enter image description here

0
:
{createdBy: 1, UserName: "Anita Wilkins", 2018-02-01: "N/A", 2018-02-02: "N/A", 2018-02-03: "N/A", …}
1
:
{createdBy: 2, UserName: "Genson", 2018-02-01: "N/A", 2018-02-02: "N/A", 2018-02-03: "N/A", …}
length
:
2

__proto__
:
Array(0)
jquery asp.net-mvc asp.net-mvc-4
1个回答
0
投票

您试图在不知道密钥的情况下迭代阵列。以下解决方案将为您完成。

<html>
<body>
    <div id="showData"></div>
</body>
<script>
    var tableData = [{
            "createdBy": 1,
            "UserName": "Anita Wilkins",
            "2018-02-01": "N/A",
            "2018-02-02": "N/A",
            "2018-02-03": "N/A"
        },
        {
            "createdBy": 2,
            "UserName": "Genson",
            "2018-02-01": "N/A",
            "2018-02-02": "N/A",
            "2018-02-03": "N/A"
        }
    ]

    // EXTRACT VALUE FOR HTML HEADER. 
    // ('createdBy', 'UserName', '2018-02-01', '2018-02-02' and 2018-02-03)
    var col = [];
    for (var i = 0; i < tableData.length; i++) {
        for (var key in tableData[i]) {
            if (col.indexOf(key) === -1) {
                col.push(key);
            }
        }
    }

    // CREATE DYNAMIC TABLE.
    var table = document.createElement("table");

    // CREATE HTML TABLE HEADER ROW USING THE EXTRACTED HEADERS ABOVE.

    var tr = table.insertRow(-1); // TABLE ROW.

    for (var i = 0; i < col.length; i++) {
        var th = document.createElement("th"); // TABLE HEADER.
        th.innerHTML = col[i];
        tr.appendChild(th);
    }

    // ADD JSON DATA TO THE TABLE AS ROWS.
    for (var i = 0; i < tableData.length; i++) {

        tr = table.insertRow(-1);

        for (var j = 0; j < col.length; j++) {
            var tabCell = tr.insertCell(-1);
            tabCell.innerHTML = tableData[i][col[j]];
        }
    }

    // FINALLY ADD THE NEWLY CREATED TABLE WITH JSON DATA TO A CONTAINER.
    var divContainer = document.getElementById("showData");
    divContainer.innerHTML = "";
    divContainer.appendChild(table);
</script>

</html>
© www.soinside.com 2019 - 2024. All rights reserved.