从HTML元素中获取DataTable对象

时间:2016-07-20 15:36:30

标签: javascript jquery html datatables

我在尝试访问特定HTML元素的数据表对象时遇到问题。

我查看了JQuery Data Table的文档,并使用了这个示例: https://datatables.net/reference/option/retrieve

然而,这不起作用。这是我的全局文件main.js中的代码:

function initTable () {
    return $(".dynamic-table").DataTable({
        "aaSorting": [],
        "scrollY": 530,
        "scrollCollapse": true,
        "lengthMenu": [
            [100, 400, 1000, 5000, -1],
            [100, 400, 1000, 5000, "All"]
        ],
        "retrieve": true
    });
}

$(document).ready(function() {
    initTable();
});

现在在我的另一个文件中,我尝试检索对象:

$(document).ready(function() {
    var table = initTable();
});

这不会检索对象,而是再次初始化对象并使表格呈现两次。

enter image description here

我也尝试过:

$(document).ready(function() {
    var table = $(".dynamic-wide-table").DataTable();
});

因为我读过一些线程说空白初始化只会检索对象。

这些解决方案都不起作用。如果有人知道我做错了什么我会非常感激!感谢。

3 个答案:

答案 0 :(得分:2)

$(".dynamic-wide-table").DataTable();

如上所述引用是获取Data Tables API引用的正确方法。

您可以在数据表示例https://datatables.net/examples/ajax/objects.html中对此进行测试,然后在控制台中输入以下JS。您将看到它不会重绘表格或创建第二个表格。

$('#example').DataTable()

另请参阅明确说明此方法的API文档https://datatables.net/reference/api/

答案 1 :(得分:0)

您可以使用extend ..

   $.extend( true, $.fn.dataTable.defaults, {
            "bFilter": true,

        } );

答案 2 :(得分:0)

当你有一个选择器时获取实例(例如“#table_id”或“.display-tables”):

var instance = new $.fn.dataTable.Api( 'selector' );

DataTable.net docs