我正在使用 jQuery DataTable 从此“data.txt”形成一个表格:
{ "aaData" : [
{
"ftitle": "Test1",
"link": "http://server.com/test1/",
"fname": "test1.pdf",
"fid": "test1_353752165.pdf"
},
{
"ftitle": "Test2",
"link": "http://server.com/test2/",
"fname": "test2.pdf",
"fid": "test2_353754257.pdf"
} ] }
这是我的js代码:
$('#example').dataTable( {
"bProcessing": true,
"sAjaxSource": "data/data.txt",
"aoColumns": [
{ "sClass": "center",
"fnRender": function( oObj ) {
return oObj.aData[0]+' '+ oObj.aData[2];
}
},
{ "mDataProp": "fid", "sClass": "center" },
{ "mDataProp": "fname", "sClass": "center" }
],
} );
我只想获取.aData为fnrender()的实际数据但这仅适用于纯数组数据。 我现在得到的是“未定义未定义”,如果我使用仅包含数组数据的 .txt,它可以正常工作。
我认为我不知道如何正确地使用 fnrender,尤其是在处理对象时。
最佳答案
您得到“未定义”,因为 oObj.aData 是一个对象,而不是数组,并且没有“0”字段。使用如下语法:
oObj.aData.link
或
oObj.aData["link"]
完整示例(仅修改了 fnRender 返回值):
$('#example').dataTable( {
"bProcessing": true,
"sAjaxSource": "data/data.txt",
"aoColumns": [
{ "sClass": "center",
"fnRender": function( oObj ) {
return '<a href="' + oObj.aData.link + '">' + oObj.aData.ftitle + '</a>';
}
},
{ "mDataProp": "fid", "sClass": "center" },
{ "mDataProp": "fname", "sClass": "center" }
],
} );
关于带有对象的 jQuery DataTables fnrender,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6518989/