Функция DataTables - table.row.add, не работающая с кнопкой внутри таблицы (javascript) - PullRequest
0 голосов
/ 13 февраля 2019

Я использую библиотеку DataTables для создания таблицы с кнопкой «скачать».

В первом ряду кнопка работает, но в остальных строках не работает (я использую цикл для ввода данных в таблицу).

что я делаюне так?

JS Код:

snapshot.forEach(function(childSnapshot) {
 var childData = childSnapshot.val();
 number = childData.Number;
 table.row.add( [
       number,
       "<button id='script'>Download Files</button>"
    ] ).draw( false );
 button = document.getElementById('script');
 button.onclick = function(){ myScript(number)};
});

1 Ответ

0 голосов
/ 13 февраля 2019

Вы создаете много кнопок с одинаковым идентификатором, поэтому document.getElementById('script'); всегда будет возвращать один и тот же первый элемент с этим идентификатором.

Вы можете попробовать что-то вроде этого:

snapshot.forEach(function(childSnapshot, i) {
 var childData = childSnapshot.val();
 number = childData.Number;
 table.row.add( [
       number,
       `<button id='script${i}'>Download Files</button>`
    ] ).draw( false );
 button = document.getElementById(`script${i}`);
 button.onclick = function(){ myScript(number)};
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...