是否有可能在Jquery数据表中的第2 /第3行/第n行之后添加新行? 我用这个方法fnAddData([...])。 它按预期工作。 但我需要在两行之间添加记录。 请有人帮帮我..
答案 0 :(得分:3)
我与你分享我所做的事情:
// for example you want to insert after the 2nd row
var numberOfRowAfterYouWantToInsert = 2;
var rowAfterYouWantToInsert = $("#yourTableId tr").eq( numberOfRowAfterYouWantToInsert );
var rowsAfter_rowAfterYouWantToInsert = rowAfterYouWantToInsert.nextAll();
var standbyTable = $("<table>");
// remove rows by putting over to a standby table
standbyTable.append( rowsAfter_rowAfterYouWantToInsert );
// just did an empty tr here
var tr = $("<tr>");
// append it
$("#yourTableId").append( tr );
// and put back those removed rows to the original table
$("#tableID").append( rowsAfter_rowAfterYouWantToInsert );
这个解决方案简单易读,主要优点:它有效:)希望它可以帮到你!
编辑: 我发现有一个更简单的解决方案:
// for example you want to insert after the 2nd row
var numberOfRowAfterYouWantToInsert = 2;
var rowAfterYouWantToInsert = $("#yourTableId tr").eq( numberOfRowAfterYouWantToInsert );
// new row with two cells
var tr = $("<tr><td>asd</td><td>qwe</td></tr>");
rowAfterYouWantToInsert.after( tr );
答案 1 :(得分:1)
这对我有用。从数据表中获取数组,拼接所需索引处的值,然后重绘数据表。这样,如果您必须进行重绘 - 您附加的值仍将在表格中。
var newRow = [1, 2, 3]; // new row in the datatable
var index = 4; // index for the new row to be added
var currentRows = datatable.data().toArray(); // current table data
currentRows.splice(index, 0, newRow);
datatable.clear();
datatable.rows.add(currentRows);
datatable.draw();
答案 2 :(得分:0)
将行添加到表中(在其中将要在行之前插入的表wot的DOM引用放在其中):
var html = "<tr><td>a</td><td>b</td></tr>";
$(tr).after(html);
接下来,使用此功能(其中tbServer是表ID)重置表:
function ResetDataTable() {
$("#tbServer thead tr").remove();
var oHeadRow = $(".dataTables_scrollHeadInner").find("table thead tr").clone();
$("#tbServer thead").append(oHeadRow);
var oTbl = $("#tbServer").clone();
oTable.destroy();
$("#tbServer").remove();
$("#divTbl").append(oTbl)
SetupDataTable();
}