datatables colReorder排序方法与数组从变量

datatables colReorder order method with array from variable

本文关键字:数组 变量 方法 colReorder 排序 datatables      更新时间:2023-09-26

我想获得一个动态生成的数组,并将其传递给colReorder的"order"选项。

下面的代码可以正常运行:

var colOrder = [2,1,0];
$(document).ready(function() {
    dataTable = $('#example').DataTable( {
        colReorder: true
    } );
    dataTable.colReorder.order(colOrder);
} );

注意数组colOrder。我可以在dataTables的order选项中为这个静态数组添加一个变量。

当我测试时,让javascript提醒colOrder的内容,我得到:2,1,0(没有括号)

但是,下面的操作不起作用:

HTML:

<input id="test" type="hidden" value="2,1,0" />
Javascript:

var colOrder = new Array($('#test').val().split(","));
$(document).ready(function() {
    dataTable = $('#example').DataTable( {
        colReorder: true
    } );
    dataTable.colReorder.order(colOrder);
} );

当我测试时,让javascript提醒colOrder的内容,我得到:2,1,0(没有括号)——我看不出有什么不同!生成了DataTable,并且colReorder甚至可以工作,但是我为该变量提供的顺序不起作用

我得到以下错误:ColReorder -数组重新排序不匹配已知的列数。跳过。

有人能帮帮我吗?下面是jsfiddle: https://jsfiddle.net/runnerjoe/k47puxux/1/

您的非功能代码正在生成[["2","1","0"]],而不是[2,1,0]。移除new Array包装器,因为它在另一个数组中嵌套值。您可能还需要将字符串转换为整数:

var colOrder = $('#test').val().split(",").map(function(index) {
   return parseInt(index, 10);
});

更新小提琴