我正在尝试链接特定列中的项目,但每个项目都将链接id
到与 json 字符串不同的位置。不幸的是,我找不到使用 API 的方法(我知道有很多方法可以在不使用 API 的情况下做到这一点),但我正在寻找一种方法来链接列中的项目(每个带有特定链接id
)。
所以这是我的代码,我用来getJSON
从服务器获取 JSON,并将数据从这个 JSON 加载到表中,如下所示:
$.getJSON("http://url.from/method?parameter=foo&callback=?", function(data)
{
var total = 0;
$("#table_body").empty();
var oTable = $('#mytable').dataTable(
{
"sPaginationType" : "full_numbers",
"aaSorting": [[ 0, "asc" ]]
});
oTable.fnClearTable();
$.each(data, function(i, item)
{
oTable.fnAddData(
[
item.contact_name,
item.contact_email
]
);
});
});
我想要做的是,对于每一行,将 链接contact_name
到它的id
,它也在 JSON 中,并且可以在这个$.each
循环中使用item.contact_id
.
有没有办法使用 DataTables API 来做到这一点,如果是的话,你能解释一下并提供一个很好的资源来帮助我吗?
OBS:我正在使用 JSONP
谢谢。
用我的新代码更新:
现在的错误是,当我点击时我得到了 id,但由于我正在处理$.each
循环内的行,对于我点击的任何行,它总是会得到id
最后处理的行。
var options =
{
"sPaginationType" : "full_numbers",
"aaSorting": [[ 0, "asc" ]],
"aoColumns": [{
"sTitle": 'Name',
"sClass": "dtName",
}, {
"sTitle": 'Email',
"sClass": "dtEmail",
}, {
"bVisible": false
}],
}
var oTable = $('#table').dataTable(options); // Creates a new instance of the DataTable
oTable.fnClearTable();
$.each(data, function(i, item)
{
oTable.fnAddData(
[
item.contact_name ,
item.contact_email,
item.contact_id
]
);
var rowData = oTable.fnGetData(i); // fetch all the ids into this array
$('#table tbody tr').click( function()
{
window.location.href = "/panel/contacts/"+rowData[2];
});
});