Я думаю, проблема в том, что fnGetData возвращает объект данных содержимого определенной строки, а не сам узел. Но для fnAddData
и fnDeleteRow
требуется узел TR, а не объект данных. Два способа решить эту проблему:
Опция 1 : Если вы уверены, что $(this).closest('tr')[0]
возвращает весь элемент TR для нужной строки, измените первую строку каждой из ваших click
функций на:
var data = $(this).closest('tr')[0];
Это должно обеспечить функции в следующих двух строках соответствующего узла TR для выполнения действия.
Вариант 2 : Если вы не уверены, что $(this).closest('tr')[0]
возвращает весь элемент TR (вы можете проверить это с помощью console.log()
, чтобы узнать, возвращается ли соответствующий контент), тогда Я хотел бы рассмотреть возможность использования Datatable.net fnGetPosition
для элемента TD, в котором находится кнопка. Я обнаружил, что он гораздо более гибкий, и он всегда будет возвращать элемент, который можно использовать с fnAddData
и fnDeleteRow
.
Удачи!