Всем привет! Подскажите, пожалуйста, как реализовать удаление строки tr через нажатие иконку fa-trash. Вот здесь DOM, внизу опишу свой скрипт.
А вот сам скрипт:
var table = document.querySelector('.table');
table.addEventListener('click', checkAct);
function checkAct(event) {
var target = event.target;
if (target.tagName === 'TD' && target.className !== 'delete') {
editTd(target);
} else if (target.tagName === 'TD' && target.className === 'delete') {
deleteTr(target);
}
}
function deleteTr(target) {
var tr = target.closest('tr');
if (tr) {
tr.parentNode.removeChild(tr);
}
}
<table class="table">
<tr>
<th>Имя</th>
<th>Фамилия</th>
<th>Удалить</th>
</tr>
<tr>
<td>Иван</td>
<td>Васильевич</td>
<td class="delete"><a href="#"><i class="fa fa-trash"></i></a></td>
</tr>
<tr>
<td>Влад</td>
<td>Анатольевич</td>
<td class="delete"><a href="#"><i class="fa fa-trash"></i></a></td>
</tr>
</table>
<form action="" id="form">
<input type="text" name="" class="name" placeholder="Введите имя">
<input type="text" name="" class="surname" placeholder="Введите фамилию">
<button type="submit" class="btn">Добавить строку</button>
</form>
Когда я нажимаю на область td-шки строка tr удаляется, а когда нажимаю на иконку fa-trash скрипт не работает, я понимаю что ошибка с target-ом в аргументе функции deleteTr, но не могу разобрать что можно сделать.
Помогите как реализовать данный скрипт, и обязательно через метод closest. И если сможете поясните поподробнее, очень прошу.
Вот :
document.querySelector('table').addEventListener('click', e => {
if (e.target.matches('.fa.fa-trash'))
e.target.closest('tr').remove()
})
// или так
// document.querySelector('table').addEventListener('click', e =>
// e.target.matches('.fa.fa-trash') ? e.target.closest('tr').remove() : {})
<table class="table">
<tr>
<th>Имя</th>
<th>Фамилия</th>
<th>Удалить</th>
</tr>
<tr>
<td>Иван</td>
<td>Васильевич</td>
<td class="delete"><a href="#"><i class="fa fa-trash">remove</i></a></td>
</tr>
<tr>
<td>Влад</td>
<td>Анатольевич</td>
<td class="delete"><a href="#"><i class="fa fa-trash">remove</i></a></td>
</tr>
</table>
Логика дико простая, мониторя клик по таблице проверяем не нажали ли мы на нужную иконку, если да то удаляем строку
matches
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости