我创建了一个函数来交换表中的行,但是它似乎无法正常工作。行的数据似乎与数组中的数据不匹配。任何人都可以帮助指出我代码中的错误,或者我可能会滥用某些DataTable函数吗?

function swapDataTableRows(selector, row1Index, row2Index)
{
    var datatable = selector.DataTable();
    var rows = datatable.rows().data();
    var row1Data = datatable.row(row1Index).data();
    var row2Data = datatable.row(row2Index).data();

    datatable.row(row1Index).data(row2Data);
    datatable.row(row2Index).data(row1Data);
}


swapDataTableRows(table,2,3)-它将交换第1行和第2行。如果我将1加到索引上,它将超出范围。

最佳答案

我不确定您的问题...

我尝试创建一个简单的演示来理解:

http://jsfiddle.net/q0zb1rkc/

...在您的函数中,您永远不会draw带有新(已编辑)数据的表:

我更改了脚本的这2行:

datatable.row(row1Index).data(row2Data);
datatable.row(row2Index).data(row1Data);


我添加.draw()

datatable.row(row1Index).data(row2Data);
datatable.row(row2Index).data(row1Data);


宽度.draw()也会更改DOM,并交换ROW1和ROW2。

07-24 09:46
查看更多