Не знаю как добавить событие для кнопки, которая появляется, когда пользователь запустит скрипт

Я с помощью функции создаю ряд таблицы с кнопкой, которая должна удалять рядок таблицы

let tbody = document.getElementById("CitiesTable").getElementsByTagName("tbody")[0];
let row = document.createElement("tr");
row.id = 'blackRow';
let td5 = document.createElement("td");
let btn = document.createElement("button");
btn.id = 'deleteRowBtn';
btn.appendChild(document.createTextNode("Удалить"));
td5.appendChild(btn);
row.appendChild(td5);     
tbody.appendChild(row);

Пытаюсь вешать на кнопку вот такую штуку:

const button = document.querySelector('#deleteRowBtn');
button.addEventListener('onload', function (){
console.log('Yes!');
})

В ответ получаю вот это: "Cannot read properties of null (reading 'addEventListener')"


Ответы (1 шт):

Автор решения: Андрей ProjectSoft

Не знаю, как у вас не работает.

document.addEventListener('click', function(e){
  if(e.target.classList.contains('deleteRowBtn')){
    e.preventDefault();
    let tr = e.target.closest('tr');
    tr.remove();
    return !1;
  };
});

function addRow(){
  let tbody = document.getElementById("CitiesTable").getElementsByTagName("tbody")[0];
  let len = tbody.getElementsByTagName('tr').length + 1;
  let row = document.createElement("tr");
  let td5 = document.createElement("td");
  let btn = document.createElement("button");
  td5.appendChild(document.createTextNode(`${len}. Добавлено -> `));
  td5.appendChild(btn);
  btn.classList.add('deleteRowBtn');
  btn.appendChild(document.createTextNode("Удалить"));
  tbody.appendChild(row);
  row.appendChild(td5);
}
let btn;
if(btn = document.getElementById("addRow")){
  btn.addEventListener('click', function(e){
    e.preventDefault();
    addRow();
    return !1;
  });
}
<p>
  <button id="addRow">Add Row</button>
</p>
<table id="CitiesTable" style="font-family: Consolas, monospace; min-width: 250px;" border="1">
  <thead>
    <tr>
      <th>Title 1</th>
    </tr>
  </thead>
  <tbody>
  </tbody>
</table>

→ Ссылка