Как TO - Фильтр / Поиск таблицы в чистом JavaScript - PullRequest
0 голосов
/ 31 октября 2019

Поиск таблицы с использованием чистого JavaScript. Я пробовал ниже функции. Что не так в этой функции?

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";
       }
    }       
  }
}

1 Ответ

0 голосов
/ 01 ноября 2019

Не вижу проблемы, кажется, ваш код работает

function myFunction() {
  var input, filter, table, tr, td, i, txtValue;
  input = document.getElementById("myInput");
  //filter = input.value.toUpperCase();
  filter = '1'
  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";
      }
    }
  }
}

setTimeout(myFunction, 1000)
<table id="myTable">
  <tr>
    <td>1</td>
    <td>2</td>
  </tr>
  <tr>
    <td>11</td>
    <td>33</td>
  </tr>
  <tr>
    <td>2</td>
    <td>2</td>
  </tr>
  <tr>
    <td>3</td>
    <td>4</td>
  </tr>
  <tr>
    <td>3</td>
    <td>5</td>
  </tr>
</table>
...