Необходимо реализовать удаление объекта "студент" из массива
Студенты выводятся в виде таблицы, необходимо реализовать возможность их удаления с кнопки, как из массива, где эти студенты и находятся, так и визуально удалить строку из таблицы. Говорю честно-очень туплю, но и, прежде чем писать сюда, искал информацию в интернете. Там предлагались такие варианты, как
<script type="text/javascript">
$('document').ready(function() {
$("td").click(function (){
var selectId= document.getElementsByName('table_id').value
alert('already clicked '+selectId);});
$(this).closest("tr").remove();
});
и
function SomeDeleteRowFunction() {
// event.target will be the input element.
var td = event.target.parentNode;
var tr = td.parentNode; // the row to be removed
tr.parentNode.removeChild(tr);}
Но ничего из этого не сработало. Вот ccылка на гугл драйв с проектом.
Ответы (1 шт):
Автор решения: Andrei
→ Ссылка
Принцип удаления должен быть примерно такой:
const btns = [...document.getElementsByClassName('btn')];
btns.map(btn => {
btn.addEventListener('click', event => {
event.target.parentElement.parentElement.remove();
});
});
table, td{
border: solid 1px black;
}
<table>
<thead>
<tr>
<th>Имя</th>
<th>Фамилия</th>
</tr>
</thead>
<tbody>
<tr>
<td>Василий</td>
<td>Пупкин</td>
<td><button class="btn">Удалить</button></td>
</tr>
<tr>
<td>Семен</td>
<td>Непомнящий</td>
<td><button class="btn">Удалить</button></td>
</tr>
<tr>
<td>Мария</td>
<td>Облигация</td>
<td><button class="btn">Удалить</button></td>
</tr>
</tbody>
</table>
Вариант с делигированием:
const students = document.getElementById('students');
students.addEventListener('click', event => {
if (event.target.classList.contains('btn')) {
event.target.parentElement.parentElement.remove();
}
});
table,
td {
border: solid 1px black;
}
<table id="students">
<thead>
<tr>
<th>Имя</th>
<th>Фамилия</th>
</tr>
</thead>
<tbody>
<tr>
<td>Василий</td>
<td>Пупкин</td>
<td><button class="btn">Удалить</button></td>
</tr>
<tr>
<td>Семен</td>
<td>Непомнящий</td>
<td><button class="btn">Удалить</button></td>
</tr>
<tr>
<td>Мария</td>
<td>Облигация</td>
<td><button class="btn">Удалить</button></td>
</tr>
</tbody>
</table>