xTMx9 Ответов: 1

Поиск 2 столбцов вместо 1 в HTML с помощью javascript


Я пытаюсь сделать HTML-таблицу доступной для поиска с помощью javascript, но не могу заставить ее работать(она работает только с 1 столбцом), я искал перед запросом, но все результаты разные, и я хочу отредактировать код, который у меня есть.Кто-нибудь может помочь, пожалуйста, и скажите мне, что мне нужно отредактировать, чтобы он работал с 2 колонками [1] и [2]?и спасибо.

Что я уже пробовал:

Это мой html поиск и таблица:
<input type="search" id="myInput" onkeyup="searchTable()" class="form-control">
<table id="myTable" class="table table-striped table-responsive">


Это сценарий, который я использую:
function searchTable() {
  // Declare variables 
  var input, filter, table, tr, td, i;
  input = document.getElementById("myInput");
  filter = input.value.toUpperCase();
  table = document.getElementById("myTable");
  tr = table.getElementsByTagName("tr");

  // Loop through all table rows, and hide those who don't match the search query
  for (i = 0; i < tr.length; i++) {
    td = tr[i].getElementsByTagName("td")[1];
    if (td) {
      if (td.innerHTML.toUpperCase().indexOf(filter) > -1) {
        tr[i].style.display = "";
      } else {
        tr[i].style.display = "none";
      }
    } 
  }
}

ZurdoDev

Если у вас есть код, который работает на одном столбце, заставить его работать на 2 столбцах должно быть тривиально. Где ты застрял?

1 Ответов

Рейтинг:
8

Peter Leow

Попробовать это:

for (i = 0; i < tr.length; i++) {

    td = tr[i].getElementsByTagName("td");

	if(td.length > 0){ // to avoid th

       if (td[0].innerHTML.toUpperCase().indexOf(filter) > -1 || td[1].innerHTML.toUpperCase().indexOf(filter) > -1) {
         tr[i].style.display = "";
       } else {
         tr[i].style.display = "none";
       }

    }
 }