我正在使用带有rowGroup插件的jQuery datatables插件。
我需要使用'startRender'功能在每个组的'标题'中显示一些信息。
链接:
RowGroup插件:https://datatables.net/extensions/rowgroup/examples/initialisation/startAndEndRender.html
但问题是,我无法读取行tr Id来获取所需的数据。
如何访问startRender函数中的行Id以传递组标题中的数据?
这就是我的jQuery rowGroup:
rowGroup: {
dataSrc: 1,
startRender: function ( rows, group ) {
var kundenId = table.row( this ).index();
var kundenDomainAnzahl = 1;
var kundenMaxDomainAnzahl = 2;
return group +' ( '+ kundenDomainAnzahl +' / '+ kundenMaxDomainAnzahl +' / '+ kundenId + ')';
}
}
我的表格由PHP变量填充, 但一般来说,行看起来像这样:
<tr id="number">
<td>Name</td>
<td>Type</td>
<td>Age</td>
</tr>
答案 0 :(得分:1)
startRender
rows
实际上是一个dataTables API,其中包含与group
匹配的行。因此,直接在rows
上工作,不需要通用表API。
要获取<tr>
个ID,请循环rows
并抓住id
到nodes()
。示例:
startRender: function ( rows, group ) {
var ids = '';
rows.every(function() {
if (ids.length) ids+=', ';
ids+=this.nodes().to$().attr('id');
})
return 'test id´s : ' + ids;
}
记下这个或多或少对应于你面临的问题的演示 - &gt;的 http://jsfiddle.net/0x6m94ha/ 强>
<强>更新即可。使用数组和join()
以防止重复的ID:
startRender: function ( rows, group ) {
var ids = [];
rows.every(function() {
var id = this.nodes().to$().attr('id');
if (!~ids.indexOf(id)) ids.push(id);
})
return 'test id´s : '+ ids.join(', ');
}
演示 - &gt;的 http://jsfiddle.net/0x6m94ha/1/ 强>