我一直试图用不同的方法复制这种行为。我有两页:
edit.php?id = 45 是一个可以修改记录的表单,并且onSubmit会转到table.php?id = 45
table.php?id = 包含一个数据表,每个行都有一个第一个隐藏列,用于保存记录唯一ID。如果存在 id = 45 查询字符串,则应使用类名突出显示具有45个ID的行的行(类似于从Gmail上打开的电子邮件返回收件箱时)。
问题是我似乎无法通过任何示例找到该行。顺便说一句,我使用的是服务器端数据源,所以我不能只使用它:
$("#datatable_test tbody tr").find("td:contains("+id+")").addClass("highlight");
所以,我尝试了fnGetNodes方法而没有运气(http://datatables.net/examples/advanced_init/events_post_init.html):
var id = <?$_GET['id']?>;
$("tr", datatable_test.fnGetNodes()).each(function(data){
$(this).find("td:contains("+id+")").addClass("highlight");
});
任何帮助将不胜感激!
答案 0 :(得分:0)
实现此目的的最简单方法是将您的记录ID包含为可见td
的属性,并使用它来查找您的行。有些人喜欢......
oTable.$('[data-id=7688]').parents('tr').addClass('highlight')
如果您无法更改标记,这是找到该行的一种相当复杂的方法:
var data = oTable.fnGetData()
// assumes that the first column contains your recordId,
// that the record id cell markup is just <div>recordId</div> and
// that you have available to you the underscore.js library
var row = _.findWhere(data, {0: "<div>" + recordId + "</div>"})
var index = _.indexOf(data, row)
oTable.$('tr:eq(' + index + ')').addClass('highlight')
这次尝试是第一次尝试;我相信它可以清理一下。