Оберните таблицу в форму и попросите форму прослушивать любые изменения, которые происходят с любым флажком.Кроме того, каждый флажок должен быть в <td>
, это недопустимый HTML, чтобы иметь что-либо, что не является <td>
или <th>
как потомок <tr>
.В обратном вызове используйте e.target
, который всегда указывает на источник события (т. Е. Тег, выбранный или измененный пользователем).
// Get parent of checkbox
var searchTr = document.querySelectorAll("#searchTable tr");
// add checkbox to parent
for (let i = 1; i < searchTr.length; i++) {
var chkbox = document.createElement("input");
var cell = searchTr[i].insertCell();
chkbox.type = "checkbox";
chkbox.classList.add("chkbox");
chkbox.checked = true;
cell.appendChild(chkbox);
}
document.querySelector("#ui").addEventListener('change', hide);
function hide(e) {
e.target.closest('tr').classList.add('hide');
}
.hide {
visibility: collapse
}
<form id='ui'>
<table id="searchTable" class="table table-striped table-bordered" cellspacing="0" width="100%">
<thead>
<tr>
<th class="th-sm">Name
</th>
<th class="th-sm">Position
</th>
<th class="th-sm">Office
</th>
<th class="th-sm">Age
</th>
<th class="th-sm">Start date
</th>
<th class="th-sm">Salary
</th>
</tr>
</thead>
<tbody>
<tr>
<td>Tiger Nixon</td>
<td>System Architect</td>
<td>Edinburgh</td>
<td>61</td>
<td>2011/04/25</td>
<td>$320,800</td>
</tr>
<tr>
<td>Garrett Winters</td>
<td>Accountant</td>
<td>Tokyo</td>
<td>63</td>
<td>2011/07/25</td>
<td>$170,750</td>
</tr>
</tbody>
</table>
</form>