Я пытаюсь собрать функцию поиска / фильтрации в JavaScript для таблицы HTML.Пример, приведенный в W3Schools, позволяет пользователю вводить элемент в первую ячейку данной строки, таким образом раскрывая целевую ячейку и всю строку, связанную с этой ячейкой, в то же время отфильтровывая все остальные строки.В моем примере, приведенном ниже, ввод «Германия» отфильтровывает все, кроме «Германия, Австрия, Беларусь, Венгрия».Тем не менее, я хочу расширить функцию фильтрации для конкретных ячеек.Если я введу ячейку второго столбца, такую как «Австрия», то я бы хотел, чтобы функция отфильтровывала все остальные строки и ячейки, кроме ячейки «Австрия».Как мне настроить таблицу и функцию для этого?
function myFunction() {
var input, filter, table, tr, td, i, txtValue;
input = document.getElementById("myInput");
filter = input.value.toUpperCase();
table = document.getElementById("myTable");
tr = table.getElementsByTagName("tr");
for (i = 0; i < tr.length; i++) {
td = tr[i].getElementsByTagName("td")[0];
if (td) {
txtValue = td.textContent || td.innerText;
if (txtValue.toUpperCase().indexOf(filter) > -1) {
tr[i].style.display = "";
} else {
tr[i].style.display = "none";
}
}
}
}
#myTable {
border-collapse: collapse;
width: 100%;
border: 1px solid #ddd;
font-size: 18px;
}
#myTable td {
text-align: center;
padding: 12px;
border: 1px solid black;
}
<h2>Countries</h2>
<input type="text" id="myInput" onkeyup="myFunction()" placeholder="Search for countries..">
<table id="myTable">
<tr>
<td>Germany</td>
<td>Austria</td>
<td>Belarus</td>
<td>Hungary</td>
</tr>
<tr>
<td>France</td>
<td>Morocco</td>
<td>Mali</td>
<td>South Africa</td>
</tr>
<tr>
<td>Russia</td>
<td>Belgium</td>
<td>Tanzania</td>
<td>Brunei</td>
</tr>
<tr>
<td>Argentina</td>
<td>Ireland</td>
<td>Ghana</td>
<td>Indonesia</td>
</tr>
</table>