javascript - 数据表不显示 JSON 数据

标签 javascript jquery html datatable

我正在从 JSON URL 动态绑定(bind)数据表,并动态生成 header ,但面临一些问题。所以请查看我的代码片段并建议我如何解决它。我面临着将 json 数据传递到数据表中的 aaData,您可以在其中看到片段。

$(document).ready(function () {
        $.ajax({
            type: "GET",
            url: "https://jsonplaceholder.typicode.com/posts",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (response) {
                var json = response;
                var col = [];
                var rdata;
                $.each(json, function (index, element) {
                    for (var key in element) {
                        if (col.indexOf(key) === -1) {
                            col.push(key);
                        }
                    }
                })
                $.each(response, function (index, element) {

                    rdata = element;
                   

                })
                var tableHeaders;
                $.each(col, function (i, val) {
                    tableHeaders += "<th>" + val + "</th>";
                });

                $("#tableDiv").empty();
                $("#tableDiv").append('<table id="displayTable" class="display" cellspacing="0" width="100%"><thead><tr>' + tableHeaders + '</tr></thead></table>');
                

                $('#displayTable').DataTable({
                    "aaData": JSON.stringify(rdata),
                    "bDestroy": true,
                    "order": [1, "asc"],

                });

                //$('#displayTable').DataTable(rdata);

            },
            failure: function (response) {
                alert(response)
            }
        });

    });
<link rel="stylesheet" href="https://cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css"></style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<script src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js"></script>
<div id="tableDiv"></div>

最佳答案

我已经生成了动态列并将其传递到数据表,并且工作正常。

  $(document).ready(function () {
$.ajax({
            type: "GET",
            url: "https://jsonplaceholder.typicode.com/posts",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (response) {
                var col = [];
                var rdata=[];
                $.each(response, function (index, element) {
                    for (var key in element) {
                        if (col.indexOf(key) === -1) {
                            col.push(key);
                        }
                    }
                })
                for (var i = 0; i < col.length; i++) {
                    rdata.push({data:col[i]})
                }
                var tableHeaders="";
                $.each(col, function (i, val) {
                    tableHeaders += "<th>" + val + "</th>";
                });

                $("#tableDiv").empty();
                $("#tableDiv").append('<table id="displaytable" class="display" cellspacing="0" width="100%"><thead><tr>' + tableHeaders + '</tr></thead></table>');

                $('#displaytable').DataTable({
                    "aaData": response,
                    "bDestroy": true,
                    "columns": rdata,
                    "order": [1, "asc"]
                });
            },
            failure: function (response) {
                alert(response)
            }
        });

    });
<link rel="stylesheet" href="https://cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css"></style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<script src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js"></script>
<div id="tableDiv"></div>

关于javascript - 数据表不显示 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52095595/

相关文章:

javascript - 如何从 asp.net 中的 js 函数调用 c# 函数?

php - 即使被禁用,数据表排序 asc 图标仍然出现在第一列

html - 导航栏未正确放置在包裹内,

html - 如何让两张 table 从左到右并排 float ?

javascript - 删除项目代码点火器

javascript - Jasny Bootstrap - offcanvas 避免推送主页 : how to force menu to overlap?

javascript - 级联下拉菜单编辑在 Angular 中不起作用?

javascript - 如何禁用日期选择器上的过去日期。尝试了 stackoverflow 上提供的所有解决方案

javascript - 如何使用 jquery 更改模式内的文本?

javascript - 如何将自定义 td 附加到从二维数组生成的表中?