jQuery row.child 第二页缺失
jQuery row.child missing on second page
我使用 jQuery 创建了一个 table。我添加了一个 row.child ,它应显示在每个父行之后。在第一页上,这工作正常。但是在第二页上它不见了。
function format(d) {
return '' +
'<i style=";color:#9b9b9b; font-size:10px; Padding-left:50px"> Vertragsart - ' + d[4] + ' | Intensität - ' + d[5] + '</i>' +
'';
}
var $j = jQuery.noConflict();
$j('document').ready(function () {
var oTable = $j('#position_list').DataTable({
"order": [[0, "desc"]],
"iDisplayLength": 50,
"oLanguage": {
"sLengthMenu": "Zeige _MENU_ Einträge",
"sSearch": "Suche:",
"sInfo": "Zeige _START_ bis _END_ von _TOTAL_ Einträgen",
"sInfoEmpty": "Zeige _START_ bis _END_ von _TOTAL_ Einträgen",
"sInfoFiltered": "(gefiltert aus _MAX_ Datensätzen)",
"oPaginate": {
"sNext": "Nächste",
"sPrevious": "Vorherige"
},
},
});
$j('.parentrow').closest('tr').each(function () {
var row = oTable.row(this);
var data = format(row);
row.child(format(row.data())).show();
});
});
每次重绘 table 时,使用 drawCallback
option or draw
事件调用您的代码。
例如:
$j('#position_list').on('draw.dt', function(){
$j('.parentrow').closest('tr').each(function(){
var row = oTable.row(this);
var data = format(row);
row.child(format(row.data())).show();
});
});
问题是您正在使用 jQuery 到 select 行,但是 jQuery 只能访问当前在 DOM 上的行。正如评论中所说,在任何给定时刻,只有当前页面的行在 DOM 中,因此这些是您的代码将操纵的唯一行。
到运行一个jQueryselect或者遍历整个table,数据tablesAPI有$() method.它接受 jQuery select 或 运行 在 所有 tr
元素上 table 及其后代元素,像 jQuery(selector)
那样返回一个 jQuery 对象。
所以你只需要改变你的 jQuery select 或者 oTable.$(...)
:
oTable.$('.parentrow').closest('tr').each(function () {
var row = oTable.row(this);
var data = format(row);
row.child(format(row.data())).show();
});
我使用 jQuery 创建了一个 table。我添加了一个 row.child ,它应显示在每个父行之后。在第一页上,这工作正常。但是在第二页上它不见了。
function format(d) {
return '' +
'<i style=";color:#9b9b9b; font-size:10px; Padding-left:50px"> Vertragsart - ' + d[4] + ' | Intensität - ' + d[5] + '</i>' +
'';
}
var $j = jQuery.noConflict();
$j('document').ready(function () {
var oTable = $j('#position_list').DataTable({
"order": [[0, "desc"]],
"iDisplayLength": 50,
"oLanguage": {
"sLengthMenu": "Zeige _MENU_ Einträge",
"sSearch": "Suche:",
"sInfo": "Zeige _START_ bis _END_ von _TOTAL_ Einträgen",
"sInfoEmpty": "Zeige _START_ bis _END_ von _TOTAL_ Einträgen",
"sInfoFiltered": "(gefiltert aus _MAX_ Datensätzen)",
"oPaginate": {
"sNext": "Nächste",
"sPrevious": "Vorherige"
},
},
});
$j('.parentrow').closest('tr').each(function () {
var row = oTable.row(this);
var data = format(row);
row.child(format(row.data())).show();
});
});
每次重绘 table 时,使用 drawCallback
option or draw
事件调用您的代码。
例如:
$j('#position_list').on('draw.dt', function(){
$j('.parentrow').closest('tr').each(function(){
var row = oTable.row(this);
var data = format(row);
row.child(format(row.data())).show();
});
});
问题是您正在使用 jQuery 到 select 行,但是 jQuery 只能访问当前在 DOM 上的行。正如评论中所说,在任何给定时刻,只有当前页面的行在 DOM 中,因此这些是您的代码将操纵的唯一行。
到运行一个jQueryselect或者遍历整个table,数据tablesAPI有$() method.它接受 jQuery select 或 运行 在 所有 tr
元素上 table 及其后代元素,像 jQuery(selector)
那样返回一个 jQuery 对象。
所以你只需要改变你的 jQuery select 或者 oTable.$(...)
:
oTable.$('.parentrow').closest('tr').each(function () {
var row = oTable.row(this);
var data = format(row);
row.child(format(row.data())).show();
});