Не знаю как добавить событие для кнопки, которая появляется, когда пользователь запустит скрипт
Я с помощью функции создаю ряд таблицы с кнопкой, которая должна удалять рядок таблицы
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>