0

我正在尝试创建一个通用的 JS 方法来调整(fnAdjustColumnSizing())所有可见的数据表。问题是我无法完全正确地使用语法......

到目前为止,我已经接近了:

$.fn.dataTable.fnTables(true); //this gets all visible dataTables...
$('#givenTable').dataTable().fnAdjustColumnSizing(); //this  adjusts a given dataTable

$.each($.fn.dataTable.fnTables(true), function(singleTable) {
    $(singleTable).dataTable().fnAdjustColumnSizing();
});  // And this just don't work! Don't know why...

关于实现这一目标的替代方法的任何想法或建议?

编辑:我将下面的答案标记为正确答案,但我确实发现我原来的方法有什么问题(并将包括它,因为它可能对其他人有用):这是$.each提供的函数的语法,应该接收2个参数,第一个是索引,第二个是元素本身。所以:

$.each($.fn.dataTable.fnTables(true), function(idx, singleTable) {
    $(singleTable).dataTable().fnAdjustColumnSizing();
});  // This works!
4

1 回答 1

1

DataTables API 文档包含一个可能对您有所帮助的示例:

var table = $.fn.dataTable.fnTables(true);
if ( table.length > 0 ) {
    $(table).dataTable().fnAdjustColumnSizing();
}
于 2013-10-03T21:07:00.453 回答