Как удалить ячейку с определенным значением
Есть таблица и если в какой то из строк цифровое значение меньше 100, то нужно выпилить всю строку. Я взял таблицу по айдишнику и попытался перебрать ее и найти все значения меньше 100 с последующим удалением, но не выходит желаемый результат. Как исправить, что бы удалились строки где цифровое значение < 100?
<body>
<table id="statsTable">
<tr>
<td>Дима</td>
<td>20</td>
</tr>
<tr>
<td>Олег</td>
<td>140</td>
</tr>
<tr>
<td>Андрей</td>
<td>115</td>
</tr>
<tr>
<td>Николай</td>
<td>100</td>
</tr>
<tr>
<td>Костя</td>
<td>80</td>
</tr>
<tr>
<td>Руслан</td>
<td>90</td>
</tr>
<tr>
<td>Оливер</td>
<td>100</td>
</tr>
</table>
<script>
var table = document.getElementById('statsTable').getElementsByTagName('tr');
for (var i =0; i < table.length; i++) {
if(table[i] < 100) {
table.remove()
} else {
console.log('OK');
}
}
</script>
</body>
Ответы (2 шт):
Автор решения: Sergey Glazirin
→ Ссылка
// объявляем таблицу
const table = document.getElementById('statsTable');
// объявляем из таблицы строки
let tableRows = table.getElementsByTagName('tr');
//объявляем индекс
let index = 0;
while (index < tableRows.length) {
// смотрим если текст в строке в последнем теге td меньше 100, то удаляем по этому индексу
if (tableRows[index].getElementsByTagName('td')[1].innerText < 100) {
table.deleteRow(index);
// обновляем список строк
tableRows = table.getElementsByTagName('tr');
} else {
index++;
}
}
<table id="statsTable">
<tr>
<td>Дима</td>
<td>20</td>
</tr>
<tr>
<td>Олег</td>
<td>140</td>
</tr>
<tr>
<td>Андрей</td>
<td>115</td>
</tr>
<tr>
<td>Николай</td>
<td>100</td>
</tr>
<tr>
<td>Костя</td>
<td>80</td>
</tr>
<tr>
<td>Руслан</td>
<td>90</td>
</tr>
<tr>
<td>Оливер</td>
<td>100</td>
</tr>
</table>
Автор решения: vital-foto
→ Ссылка
var td = $("#statsTable").find("tr").find("td:eq(1)");
for(var i=0;i<td.length;i++) {
if(Number($(td[i]).val()) < 100) {
$(td[i]).closest("tr").remove();
}
}
<html>
<head>
<script src="https://code.jquery.com/jquery-3.6.0.js"></script>
</head>
<body>
<table id="statsTable">
<tr>
<td>Дима</td>
<td>20</td>
</tr>
<tr>
<td>Олег</td>
<td>140</td>
</tr>
<tr>
<td>Андрей</td>
<td>115</td>
</tr>
<tr>
<td>Николай</td>
<td>100</td>
</tr>
<tr>
<td>Костя</td>
<td>80</td>
</tr>
<tr>
<td>Руслан</td>
<td>90</td>
</tr>
<tr>
<td>Оливер</td>
<td>100</td>
</tr>
</table>
</body>
</html>