Javascript Datatable.js从对象生成表
假设我有一组对象,每个对象都包含要存储到数据表中的数据。根据文档,我通常会这样做:Javascript Datatable.js从对象生成表,javascript,jquery,datatables,jquery-datatables,Javascript,Jquery,Datatables,Jquery Datatables,假设我有一组对象,每个对象都包含要存储到数据表中的数据。根据文档,我通常会这样做: var dataSet = [ ['Trident', 'Internet Explorer 4.0', 'Win 95+', '4', 'X'], ['Trident', 'Internet Explorer 5.0', 'Win 95+', '5', 'C'], ['Trident', 'Internet Explorer 5.5', 'Win 95+', '5.5', 'A'],
var dataSet = [
['Trident', 'Internet Explorer 4.0', 'Win 95+', '4', 'X'],
['Trident', 'Internet Explorer 5.0', 'Win 95+', '5', 'C'],
['Trident', 'Internet Explorer 5.5', 'Win 95+', '5.5', 'A'],
['Gecko', 'Camino 1.0', 'OSX.2+', '1.8', 'A'],
['Gecko', 'Camino 1.5', 'OSX.3+', '1.8', 'A'],
['Gecko', 'Netscape 7.2', 'Win 95+ / Mac OS 8.6-9.2', '1.7', 'A'],
['Gecko', 'Netscape Browser 8', 'Win 98SE+', '1.7', 'A'],
['Gecko', 'Netscape Navigator 9', 'Win 98+ / OSX.2+', '1.8', 'A'],
['Misc', 'PSP browser', 'PSP', '-', 'C'],
['Other browsers', 'All others', '-', '-', 'U']
];
但我的数据是以对象数组的形式呈现的。我可以在for循环中遍历它们并获得每一条数据吗?例如,如果我有一个对象obj,它包含一个标题和一些数据,则以下操作不起作用:
var finalObj = "["
for (var i = 0; i < obj.length; i++) {
finalObj = finalObj + "['" + obj[i].title + "','" + obj[i].data + "']";
}
finalobj = finalObj + "]";
var finalObj=“[”
对于(变量i=0;i
这导致我的datatable每列只包含一个字母。创建字符串(或其他对象)的正确方法是什么?可以使用初始化对象中的选项,传入要使用的数据数组(与所有其他数据表处理的数据一样,这可以是使用该选项的数组或对象) 有关代码和演示,请参见下面的示例
$(文档).ready(函数(){
var obj=[
{
“头衔”:“老虎尼克松”,
“数据”:“系统架构师”
},
{
“标题”:“Garrett Winters”,
“数据”:“会计”
},
{
“头衔”:“阿什顿·考克斯”,
“数据”:“初级技术作者”
}
];
$('#示例')。数据表({
“数据”:obj,
“栏目”:[
{“数据”:“标题”},
{“数据”:“数据”}
]
});
});代码>
DataTables-JS-Bin
标题
资料
标题
资料
我想你需要关于
正如您自己看到的,它使用以下代码创建表
$('#example').dataTable( {
"data": dataSet,
"columns": [
{ "title": "Engine" },
{ "title": "Browser" },
{ "title": "Platform" },
{ "title": "Version", "class": "center" },
{ "title": "Grade", "class": "center" }
]
} );
所以这里的数据看起来是硬编码的。泰格·尼克松(Tiger Nixon)的信息说,我在寻找如果我有一个可以保存的对象该怎么办。我怎么把它转换成这个?我会使用“\”name\”:“+obj[I].name
?@Cptn\u Hammer,我的数据
变量是一个对象,而不是您试图生成的字符串。您只需将obj
作为“data”:obj
传递,而不是在我的示例中传递“data”:data
,并在列中定义对象属性。data
选项。@Cptn\u Hammer,更改了我的示例以匹配您的结构。是的,这就是我在问题中引用的示例。:)但我不知道如何使用它从对象中获取数据。在这里,我似乎仍然需要提前知道我的数据是什么。您使用的json没有提供具体的数据。这只是数据,你必须知道它们代表什么。现在,如果您有一个属性描述值的对象,您可以执行以下操作来填充表:$.each(您的对象、函数(索引、值){$(“#您的#表”).DataTable().row.add([value.property1,value.property2,…,value.propertyN]).draw();});