js以显示json文件。我提取我的列的名称并构建一个像这样的数组:
columns = ["Date", "C2R", "CM", "Total"]
我的sTitle和mData具有相同的名称,因此我尝试这样做但失败了。
jQuery('#result_example').dataTable( {
"data": result_table,
"columns": [
jQuery.each(columns, function(i, value){
//console.log(value); which give ["Date", "C2R", "CM", "Total"]
{ "sTitle": + value + , "mData": + value + },
})
],
paging: true,
searching: false,
"bInfo" : false
} );
目标是得到这样的结果:
jQuery('#result_example').dataTable( {
"data": result_table,
"columns": [
{ "sTitle": "Date" , "mData": "Date" },
{ "sTitle": "C2R" , "mData": "C2R" },
{ "sTitle": "CM" , "mData": "CM" },
{ "sTitle": "Total" , "mData": "Total" }
],
paging: true,
searching: false,
"bInfo" : false
} );
答案 0 :(得分:3)
您可以在外部构建对象,然后在dataTable
var clmns = [];
jQuery.each(columns, function(i, value) {
clmns.push({ "sTitle": value, "mData": value}); // push it in
});
jQuery('#result_example').dataTable({
"data": result_table,
"columns": clmns, // use it here
paging: true,
searching: false,
"bInfo": false
});
答案 1 :(得分:1)
当你执行你的数据表代码时,它没有得到列名,因为你是在稍后提取它,但是那时候已经执行了数据表代码,所以你可以用jQuery.map()
做的就是创建一个数组填充了columns
数组的每次迭代的对象:
var colData = $.map(columns, function(colName) { // creates an array
return { "sTitle": colName, "mData": colName};// fills with js objects
});
jQuery('#result_example').dataTable( {
"data": result_table,
"columns":colData, //<---------you can pass it here.
// other code as is
});