javascript - 如何用 jQuery 中的 dataTables 替换标准引导表?

标签 javascript jquery arrays json datatables

我尝试并搜索了很多解决方案,但没有解决我的问题,即使在 dataTables 网站也是如此。问题是如何使用DataTables显示json中的嵌套数组?例如,如果我只想显示 l3_id: "1" 数据,该怎么办。

我试图理解这个链接,但并没有真正理解。 Example

控制台和网络选项卡没有错误。

DataTable不出现,包括dataTables功能,如搜索框、分页。 (CDN/库已导入) enter image description here

JSON

{
    "data": [
        {
            "project_id": "1",
            "l1_task": [
                {
                    "l1_id": "1",
                    "l2_task": [
                        {
                            "l2_id": "1",
                            "l3_task": [
                                {
                                    "l3_id": "1",
                                    "l3_name": "My name"
                                }
                            ]
                        }
                    ]
                }
            ]
        }
    ]
}

JS(我在JS中应用HTML)

"<table id='Layer3Table' class='table dt-responsive nowrap' style='width:100%'>"+
    "<thead>"+
        "<tr>"+
            "<th class='text-center'>ID</th>"+
            "<th class='text-center'>Activity Name</th>"+
        "</tr>"+
    "</thead>"+
"</table>"+

$('#Layer3Table').DataTable({
    ajax: { 
        url: url_project_detail",
        dataSrc : "data"
    },
    columns: [
        { data : "l1_task.0.l2_task.0.l3_task.0.l3_id" },
        { data : "l1_task.0.l2_task.0.l3_task.0.l3_name" },
    ],
});

最佳答案

要么定义您的表格,包括 HTML 中的所有 tbody 内容,然后使用 DataTables 启用搜索等功能。如果您这样做,则无需设置 url 或列(尽管您仍然可以设置其他选项)。

$('#Layer3Table').DataTable();

或者,如果您想使用 url 和列功能,请在 HTML 中创建基本表格结构

<table id='Layer3Table' class='table dt-responsive nowrap' style='width:100%'>
    <thead>
        <tr>
            <th class='text-center'>Project ID</th>
            <th class='text-center'>Project Name</th>
            <th class='text-center'>Project Description</th>
            <th class='text-center'>Project Status</th>
        </tr>
    </thead>
    <tbody>
    </tbody>
</table>

然后在 JavaScript 中单独设置数据表。

$('#Layer3Table').DataTable( {
    ajax: { 
        url: url_project_detail,
        crossDomain : true,
        type : "POST",
        cache : false,
        dataType : "json",
        contentType: "application/json",
        dataSrc : "data",
    },
    columns: [
        { data : "l3_id", "className": "text-center" },
        { data : "l3_name", "className": "text-center" },
        { data : "l3_description", "className": "text-center" },
        { data : "l3_status", "className": "text-center" }
    ],
});

您似乎正在做的是循环结果并为每个结果创建一个 DataTable,这就是它不理解的原因。

关于javascript - 如何用 jQuery 中的 dataTables 替换标准引导表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60756418/

相关文章:

python - 如何从python中的数组(或矩阵)中提取除一列之外的所有列?

javascript - 在 Javascript 中将数组传递给函数并转义双引号

javascript - 使用 javascript 插入具有冲突 ID 的 SVG

javascript - 在 React 中读取 CSV 文件

javascript - 如何使用 Fabric.js 将图像上传到 Canvas ?

java - 数组问题中的最小最大

javascript - 如何使用 FB.ui Javascript sdk 在 facebook 上上传视频

Jquery 检查样式表并执行操作

javascript - 使用jquery动态加载js

javascript - 两个图像预加载器