首先,你的脚本有错误,可能是拼写错误,[obj][index][value] "]" 后面多了一个方括号。
var obj = $.parseJSON(res);
$.each(obj, function (index) {
$.each(obj[index], function (value) {
table.row.add(
[obj[index][value] >]<-- One too many brackets ).draw();
});
});
然后是我的建议。
首先我做了两个小帮手...
一个来计算列数:
$.fn.DTbl_columnCount = function () {
return $('th', $(this).find('thead')).length;
};
而且由于我不知道会出现什么样的数据,所以下一个是所有皮带和带扣,呃,在一个“随便”的版本中,它也接受数组;)
$.fn.DTbl_createDataColumns = function (whatever) {
var temp = new Array($(this).DTbl_columnCount());
var value = "";
var type = jQuery.type(whatever);
var isArray = (type == "array");
if (!isArray && type != undefined)
value = whatever;
for (var i = 0; i < temp.length; i++) {
if (isArray)
if (whatever.length > i)
value = whatever[i];
temp[i] = '' + value;
value = "";
}
return temp;
};
然后到你的问题,因为这些添加不是 DataTables 的一部分,我们需要在 DTbl_createDataColumns 的函数调用中获取 DataTable Id,这里使用标准参考“#example”。
var obj = $.parseJSON(res);
$.each(obj, function (index) {
$.each(obj[index], function (value) {
table.row.add(
$("#example").DTbl_createDataColumns([obj[index][value])
).draw();
});
});
所以这也可以:
var myArray = ["Dodaa", "Dodee"];
table.row.add( $("#example").DTbl_getDataColumns(myArray) );