Javascript 一页上有多个表的Datatables

Javascript 一页上有多个表的Datatables,javascript,datatables,Javascript,Datatables,我在datatables.net网站上查找一些说明或文档,而不是关于如果您在一个页面上有多个表,并且希望以不同方式处理每个表,该怎么办 我尝试了显而易见的方法。在我的js中,将每个id分配给不同的id,然后为每个id执行代码,但由于某些原因,这是不允许的。我没有收到错误,但datatables本身会中断,不会执行任何操作 $(document).ready(function() { var oTable = $('#inbox').dataTable( { "bAutoWidth":

我在datatables.net网站上查找一些说明或文档,而不是关于如果您在一个页面上有多个表,并且希望以不同方式处理每个表,该怎么办

我尝试了显而易见的方法。在我的js中,将每个id分配给不同的id,然后为每个id执行代码,但由于某些原因,这是不允许的。我没有收到错误,但datatables本身会中断,不会执行任何操作

$(document).ready(function() {

var oTable = $('#inbox').dataTable( {
    "bAutoWidth": false, 
    "aoColumnDefs": [
        { "bSortable": false, "aTargets": [ 0, -1 ] },
        { "sWidth": "20px", "aTargets": [ 0, -1 ] },
        { "sWidth": "100px", "aTargets": [ 1 ] },
        { "sWidth": "150px", "aTargets": [ 3 ] }
    ]
} );

var oTable = $('#sent').dataTable( {
    "bAutoWidth": false, 
    "aoColumnDefs": [
        { "bSortable": false, "aTargets": [ 0, -1 ] },
        { "sWidth": "20px", "aTargets": [ 0, -1 ] },
        { "sWidth": "100px", "aTargets": [ 1 ] },
        { "sWidth": "150px", "aTargets": [ 3 ] }
    ]
} );

});
更新


您正在重新声明同一变量

var oTable = $('#inbox').dataTable({ /* ... */ });

var oTable = $('#sent').dataTable({ /* ... */ });
这其中的“可旋转”部分正是艾伦(作者)碰巧在他的例子中使用的,以符合他的惯例。小写字母“o”表示某个对象,它是一个表。但是你可以用任何你想要的名字

您的想法是正确的,但您需要使用:

var inboxTable = $('#inbox').dataTable({ /* ... */ });

var sentTable = $('#sent').dataTable({ /* ... */  });
然后,如果您在站点上遵循他的其他示例,您只需将自己的变量名替换为“oTable”

现场样品:


[更新]

我应该提到,最近我在一个嵌套对象中存储了多个表;我有一种轮询机制,可以迭代特定的表数组(而不是其他表),因此示例对象如下所示:

var oTables = {
  "polling" : [
    $('#someTable').dataTable(opts),
    $('#anotherTable').dataTable(opts)
  ],
  "nonpolling" : [
    $('#staticTable').dataTable(opts)
  ]
};
最终结果仍然是一样的。但我现在可以通过轮询表对象数组调用SetTimeout:

if(someBoolean) {
  for(var i=0; i < oTables.polling.length; i++) {
    setTimeout(pollingFunction, 5000)
  }
}
if(someBoolean){
for(变量i=0;i

(高度简化)

另请参见,谢谢。我一定找遍了所有人,但找不到好的东西。出于某种原因,当我将一个dataTable类应用于两个表,而使用('.dataTable).dataTable({…它仍然无法正常工作。我运行了另一个问题,可以通过确保不同表的oaColumn变量的名称不同来解决。
if(someBoolean) {
  for(var i=0; i < oTables.polling.length; i++) {
    setTimeout(pollingFunction, 5000)
  }
}