检索元素的dataTable对象

时间:2016-07-20 16:33:22

标签: javascript jquery datatables datatables-1.10

我正在尝试使用JQuery获取jQuery数据表的对象。我正在使用这个线程来实现这个目标:

https://datatables.net/forums/discussion/2913/how-to-get-the-otable-datatable-object-from-the-tables-id

出于某种原因,这不起作用。当我调用$('.dynamic-wide-table').dataTable();时,它会导致我的表初始化AGAIN并使表格渲染两次,如下所示:

enter image description here

根据上面发布的链接,它不应该这样做,而只是获取对象。

这是我的代码:          

main.js(加载到每页的HTML头部)

$(document).ready(function() {
    $(".dynamic-wide-table").dataTable({
        "aaSorting": [],
        "scrollX": true,
        "scrollY": 530,
        "scrollCollapse": true,
        "lengthMenu": [
            [100, 400, 1000, 5000, -1],
            [100, 400, 1000, 5000, "All"]
        ],
        "retrieve": true
    });
});

获取对象:

$(document).ready(function() {
    $('.dynamic-wide-table').dataTable();
});

2 个答案:

答案 0 :(得分:0)

发表评论后:

您将无法获取单个表对象,因为具有该类的每个元素都将拥有它自己的dataTable对象。

您可以遍历各个类并检索每个类。为了获得单个元素dataTable对象,您需要知道您需要该对象的表元素:

$(document).ready(function() {
    $('.dynamic-wide-table').each(function(i){
        console.log('table no. ' + i );
        // Should print the dataTable object for each element to the console
        console.log($(this).dataTable());
    });
});

理想的做法是为每个表提供一个id,然后检索带有id的dataTable对象:

$('#tableId').dataTable();

答案 1 :(得分:-1)

嗯,我认为你不需要同时设置两个..?

如果删除get对象代码,它应该停止触发两次。

您已在main.js中执行此操作,但同时加载选项。