Я могу предположить, что createdRow
callback вызывается, когда узел row
готов, но еще не вставлен в DOM, поэтому место, на которое ссылается .after()
, на самом деле неизвестно.
КакЯ пытался обмануть DataTable с помощью чего-то, например:
createdRow: row => {
let newRowTemplate = document.createElement('template');
newRowTemplate.innerHTML = `${row.innerHTML}<tr><td>test</td></tr>`;
row = newRowTemplate.content.children;
}
У меня тоже не получилось, так как DataTable, вероятно, отфильтровывает firstChild
из HTMLCollection, поэтому я не вижу способа добавить 2x <tr>
узлов этого обратного вызова.
Обходной путь, я думаю, использует row().child()
, что даст вам ожидаемый результат:
createdRow: (row, data, dataIndex) => {
$('#test').DataTable().row(dataIndex).child('<tr><td>test</td></tr>').show();
}