你做的每件事都是正确的,你只是犯了一个菜鸟错误,而且很容易被忽视。
当你这样做时
$("#artifacts").dataTable();
您正在创建一个新的数据表实例。 Datatables 在该调用中返回对象实例(带有 API 函数),但您没有将该实例存储在任何地方,因此,您将丢失对刚刚创建的数据表的所有引用。
要解决此问题,只需添加对您创建的数据表的引用,如下所示
var thisTable = $("#artifacts").dataTable(
{
"sPaginationType": "full_numbers",
"bJQueryUI": true
}
);
然后在每个函数中引用它
$.each(data.artifact, function(i,artifact){
thisTable.fnAddData(
[
artifact.artifactId,
artifact.batchId,
artifact.processId
]
);
});
这是一个JSFiddle 示例 http://jsfiddle.net/Bva8m/看看它的实际效果。
The 动态添加新行 http://datatables.net/release-datatables/examples/api/add_row.html示例数据表网 http://datatables.net/相当差,因为它正在执行内联 API 调用,而不需要添加引用。下面的例子更好地证明了这一点多重过滤 http://datatables.net/release-datatables/examples/api/multi_filter.html.
您还可以在他们的网站上阅读相关内容API文档 http://datatables.net/api.
提示:它在下面的第一行中演示$