Я пытаюсь удалить строки с определенным атрибутом данных, но всегда есть несколько строк, которые остались
Я сузил его до самого .remove().draw()
метода! Как странно это ?! Но, конечно же, если я добавлю .remove().draw()
, все предупреждения после определенной точки станут недействительными или неопределенными
var table = $j('#table_view_subs').DataTable();
table.rows().eq(0).filter(function(index) {
var row = table.row(index);
var rowdata = row.data();
alert(rowdata); //suddenly returns undefined
var data = row.nodes().to$().data();
alert(JSON.stringify(data)); //suddenly returns null
var closesttr = table.row($(this).closest("tr").get(0));
closesttr.remove().draw(); //if I comment this, all the alerts show the right info
});
Вы когда-нибудь видели это раньше? Что я могу делать не так?
РЕДАКТИРОВАТЬ: после @A. Комментарий Вольфа:
var table = $j('#table_view_subs').DataTable();
table.rows().every( function ( index, tableLoop, rowLoop ) {
var row = table.row(index);
var rowdata = row.data();
alert(rowdata); //suddenly returns undefined
var data = row.nodes().to$().data();
alert(JSON.stringify(data)); //suddenly returns null
var closesttr = table.row($(this).closest("tr").get(0));
closesttr.remove(); //if I comment this, all the alerts show the right info
});
table.draw();
РЕДАКТИРОВАТЬ 2: использование фильтра другим способом возвращает Uncaught TypeError: table.rows(...).filter(...).remove is not a function
table.rows().filter(function(){
return $(this).data('data-dynamic') === 'true';
}).remove();