Поиск по нескольким таблицам на странице

Разбираюсь в js, пытаюсь сделать поиск по нескольким таблицам на странице, которые находятся на разных табах. Поиск по одной таблице работает. Ищет данные только в первой. Но если я хочу использовать querySelectorAll, чтобы учесть все таблицы поиск перестает работать вообще. Подскажите пожалуйста где ошибка, может я что-то забываю или вообще не то делаю

<div class="row">
        <div class="tabs">
            <a href="#" class="tab__link" onclick="openTab(event, 'workinghours')">Working Hours</a>
            <a href="#" class="tab__link" onclick="openTab(event, 'seedschangtime')">Seeds Changing Time</a>
            <a href="#" class="tab__link" onclick="openTab(event, 'statistics')">Statistics</a>
        </div>
    </div>
    
    <div class="search">
        <input id="searchInTable" type="search" class="table__search" placeholder="Search by date, employee name, seeds..." onkeyup="searchInTable()">
    </div>

    <div id="workinghours" class="tabcontent">
        <div>
            <table id="table" class="table">
                <tr class = "table__row">
                    <th class="table__heading">
                        Title
                    </th>
                    <th class="table__heading">
                        Title
                    </th>
                    <th class="table__heading">
                        Title
                    </th>
                    <th class="table__heading">
                        Title
                    </th>
                    <th class="table__heading">
                        Title
                    </th>
                    <th class="table__heading">
                        
                    </th>
                </tr>
                <tr>
                    <td class="table__text">
                        Example 2
                    </td>
                    <td class="table__text">
                        Example 2
                    </td>
                    <td class="table__text">
                        Example 2
                    </td>
                    <td class="table__text">
                        Example 2
                    </td>
                    <td class="table__text">
                        Example 2
                    </td>
                    <td class="table__text table__edit">
                        <button class = "btn btn__green edit__btn">Edit</button>
                    </td>
                </tr>
                <tr>
                    <td class="table__text">
                        Example 3
                    </td>
                    <td class="table__text">
                        Example 3
                    </td>
                    <td class="table__text">
                        Example 3
                    </td>
                    <td class="table__text">
                        Example 3
                    </td>
                    <td class="table__text">
                        Example 3
                    </td>
                    <td class="table__text table__edit">
                        <button class = "btn btn__green edit__btn">Edit</button>
                    </td>
                </tr>
            </table>
        </div>
    </div>

    <div id="seedschangtime" class="tabcontent">
        <div>
            <table id="table" class="table">
                <tr class = "table__row">
                    <th class="table__heading">
                        Title
                    </th>
                    <th class="table__heading">
                        Title
                    </th>
                    <th class="table__heading">
                        Title
                    </th>
                    <th class="table__heading">
                        Title
                    </th>
                    <th class="table__heading">
                        Title
                    </th>
                    <th class="table__heading">
                        
                    </th>
                </tr>
                <tr>
                    <td class="table__text">
                        Example 4
                    </td>
                    <td class="table__text">
                        Example 4
                    </td>
                    <td class="table__text">
                        Example 4
                    </td>
                    <td class="table__text">
                        Example 4
                    </td>
                    <td class="table__text">
                        Example 4
                    </td>
                    <td class="table__text table__edit">
                        <button class = "btn btn__green edit__btn">Edit</button>
                    </td>
                </tr>
                <tr>
                    <td class="table__text">
                        Example 5
                    </td>
                    <td class="table__text">
                        Example 5
                    </td>
                    <td class="table__text">
                        Example 5
                    </td>
                    <td class="table__text">
                        Example 5
                    </td>
                    <td class="table__text">
                        Example 5
                    </td>
                    <td class="table__text table__edit">
                        <button class = "btn btn__green edit__btn">Edit</button>
                    </td>
                </tr>
            </table>
        </div>
    </div>

    <div id="statistics" class="tabcontent">

        

        <div>
            <table id="table" class="table">
                <tr class = "table__row">
                    <th class="table__heading">
                        Title
                    </th>
                    <th class="table__heading">
                        Title
                    </th>
                    <th class="table__heading">
                        Title
                    </th>
                    <th class="table__heading">
                        Title
                    </th>
                    <th class="table__heading">
                        Title
                    </th>
                    <th class="table__heading">
                        Title
                    </th>
                    <th class="table__heading">
                        Title
                    </th>
                </tr>
                <tr>
                    <td class="table__text">
                        Example 6
                    </td>
                    <td class="table__text">
                        Example 6
                    </td>
                    <td class="table__text">
                        Example 6
                    </td>
                    <td class="table__text">
                        Example 6
                    </td>
                    <td class="table__text">
                        Example 6
                    </td>
                    <td class="table__text">
                        Example 6
                    </td>
                    <td class="table__text">
                        Example 6
                    </td>
                </tr>
                
      </table>
 </div>
.row {
    display: flex;
    flex-direction: row;
    
    align-items: center;
}
.tabs {
    width: 100%;
    max-width: 1170px;
    margin: 40px 0 0 0px;
    overflow: hidden;
    position: relative;
    border-bottom: 2px solid #E7EAEE;
}
.tab__link {
    float: left;
    display: block;
    padding: 8px 9px;
    font-size: 16px;
    line-height: 22px;
    font-weight: 400;
    color: #191D23;
    text-align: center;
    text-decoration: none;
    border-bottom: 2px solid transparent;

    transition: all .1s linear;
}
.tab__link:first-child {
    padding-left: 0px;
}
.search {
    width: 100%;
    background: #F7F8F9;
    border-radius: 4px; 
    padding: 12px;
    margin: 32px 0;
    gap: 10px;

    display: flex;
    flex-direction: row;
    justify-content: space-between;
}
.table__search {
    width: 100%;
    max-width: 425px;
    padding: 8px;
    gap: 8px;
    font-weight: 400;
    font-size: 15px;
    line-height: 20px;

    background: #fff;
    color: #64748B;
    border: 1px solid #E7EAEE;
    border-radius: 4px;
}
.tabcontent {
    display: none;
}
.table {
    width: 100%;
    max-width: 1170px;

    border-spacing: 0px;
}
.table__heading {
    font-weight: 600;
    font-size: 14px;
    line-height: 19px;
    text-align: left;
    text-transform: uppercase;
    color: #64748B;
}
.table__text {
    font-weight: 400;
    font-size: 16px;
    line-height: 22px;

    color: #191D23;
}
.table__edit {
    text-align: center;
}
.btn {
    height: 44px;
    box-sizing: border-box;
    border-radius: 4px;


    color: #ffffff;
    text-align: center;
    font-style: normal;
    font-weight: 600;
    font-size: 16px;
    line-height: 22px;

    padding: 11px 24px;
}
.btn__green {
    color: #fff;
    background: #5B965D;
    border: 1px solid #5b965d00;
    
    cursor: pointer;
}
.edit__btn {
    padding: 0 32px;
}
td {
    text-align: left;
    padding: 15px 15px;

    border-bottom: 1px solid #E7EAEE;
    border-collapse: collapse;
}
th {
    padding: 20px 15px;
    border-bottom: 1px solid #E7EAEE;
    border-collapse: collapse;
}
tr:last-child td {
    border-bottom: none;
}
input {
    border: 1px solid #191D23;
    border-radius: 4px;
    padding: 8px 12px;
    
    font-weight: 400;
    font-size: 14px;
    line-height: 19px;
    color: #191D23;
    gap: 4px;
}

js:

function openTab(evt, tabName) {
    // Declare all variables
    var i, tabcontent, tablinks;
  
    // Get all elements with class="tabcontent" and hide them
    tabcontent = document.getElementsByClassName("tabcontent");
    for (i = 0; i < tabcontent.length; i++) {
      tabcontent[i].style.display = "none";
    }
  
    // Get all elements with class="tab__link" and remove the class "active"
    tablinks = document.getElementsByClassName("tab__link");
    for (i = 0; i < tablinks.length; i++) {
      tablinks[i].className = tablinks[i].className.replace(" tab__link--active", "");
    }
  
    // Show the current tab, and add an "active" class to the button that opened the tab
    document.getElementById(tabName).style.display = "block";
    evt.currentTarget.className += " tab__link--active";
  }

function searchInTable () { 
  var input, filter, table, tr, td, i;
  input = document.getElementById("searchInTable");
  filter = input.value.toUpperCase();
  table = document.getElementById("table");
  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") ; 
    for(j=0 ; j<td.length ; j++)
    {
      let tdata = td[j] ;
      if (tdata) {
        if (tdata.innerHTML.toUpperCase().indexOf(filter) > -1) {
          tr[i].style.display = "";
          break ; 
        } else {
          tr[i].style.display = "none";
        }
      } 
    }
  }
}

Ответы (2 шт):

Автор решения: Alexandr_Yakovlev

Как я понял вам нужно скрывать элементы с классом .table__text, если их содержимое не совпадает по поиску?

function searchInTable() {
    const tableTexts = document.querySelectorAll(".table__text");
    const input = document.querySelector(".table__search");


    input.addEventListener("input", () => {
        const inputVal = input.value.trim().toLowerCase();

        tableTexts.forEach((item) => {
            if (item) {
                if (item.innerText.toLowerCase().search(inputVal) !== -1 || !inputVal.length) {
                    item.style.display = "";
                } else {
                    item.style.display = "none";
                }
            }
        });
    });
}

searchInTable();
→ Ссылка
Автор решения: levietskaya

Немного изменив функцию в ответе, получила нужный результат. Благодарю за помощь

function openTab(evt, tabName) {
    // Declare all variables
    var i, tabcontent, tablinks;
  
    // Get all elements with class="tabcontent" and hide them
    tabcontent = document.getElementsByClassName("tabcontent");
    for (i = 0; i < tabcontent.length; i++) {
      tabcontent[i].style.display = "none";
    }
  
    // Get all elements with class="tab__link" and remove the class "active"
    tablinks = document.getElementsByClassName("tab__link");
    for (i = 0; i < tablinks.length; i++) {
      tablinks[i].className = tablinks[i].className.replace(" tab__link--active", "");
    }
  
    // Show the current tab, and add an "active" class to the button that opened the tab
    document.getElementById(tabName).style.display = "block";
    evt.currentTarget.className += " tab__link--active";
  }
  
  function searchInTable () {
  const input = document.querySelector(".table__search");
  const tr = document.querySelectorAll(".table__row");
  const tableTexts = document.querySelectorAll(".table__text");
  
  

  input.addEventListener("input", () => {
    const inputVal = input.value.trim().toLowerCase();

    tr.forEach((item) => {
          if (item) {
              if (item.innerText.toLowerCase().search(inputVal) !== -1 || !inputVal.length) {
                item.style.display = "";
              } else {
                item.style.display = "none";
              }
            }
        });
    });
}

searchInTable ()
.row {
    display: flex;
    flex-direction: row;
    
    align-items: center;
}
.tabs {
    width: 100%;
    max-width: 1170px;
    margin: 40px 0 0 0px;
    overflow: hidden;
    position: relative;
    border-bottom: 2px solid #E7EAEE;
}
.tab__link {
    float: left;
    display: block;
    padding: 8px 9px;
    font-size: 16px;
    line-height: 22px;
    font-weight: 400;
    color: #191D23;
    text-align: center;
    text-decoration: none;
    border-bottom: 2px solid transparent;

    transition: all .1s linear;
}
.tab__link:first-child {
    padding-left: 0px;
}
.search {
    width: 100%;
    background: #F7F8F9;
    border-radius: 4px; 
    padding: 12px;
    margin: 32px 0;
    gap: 10px;

    display: flex;
    flex-direction: row;
    justify-content: space-between;
}
.table__search {
    width: 100%;
    max-width: 425px;
    padding: 8px;
    gap: 8px;
    font-weight: 400;
    font-size: 15px;
    line-height: 20px;

    background: #fff;
    color: #64748B;
    border: 1px solid #E7EAEE;
    border-radius: 4px;
}
.tabcontent {
    display: none;
}
.table {
    width: 100%;
    max-width: 1170px;

    border-spacing: 0px;
}
.table__heading {
    font-weight: 600;
    font-size: 14px;
    line-height: 19px;
    text-align: left;
    text-transform: uppercase;
    color: #64748B;
}
.table__text {
    font-weight: 400;
    font-size: 16px;
    line-height: 22px;

    color: #191D23;
}
.table__edit {
    text-align: center;
}
.btn {
    height: 44px;
    box-sizing: border-box;
    border-radius: 4px;


    color: #ffffff;
    text-align: center;
    font-style: normal;
    font-weight: 600;
    font-size: 16px;
    line-height: 22px;

    padding: 11px 24px;
}
.btn__green {
    color: #fff;
    background: #5B965D;
    border: 1px solid #5b965d00;
    
    cursor: pointer;
}
.edit__btn {
    padding: 0 32px;
}
td {
    text-align: left;
    padding: 15px 15px;

    border-bottom: 1px solid #E7EAEE;
    border-collapse: collapse;
}
th {
    padding: 20px 15px;
    border-bottom: 1px solid #E7EAEE;
    border-collapse: collapse;
}
tr:last-child td {
    border-bottom: none;
}
input {
    border: 1px solid #191D23;
    border-radius: 4px;
    padding: 8px 12px;
    
    font-weight: 400;
    font-size: 14px;
    line-height: 19px;
    color: #191D23;
    gap: 4px;
}
         <div class="row">
            <div class="tabs">
                <a href="#" class="tab__link" onclick="openTab(event, 'workinghours')">Working Hours</a>
                <a href="#" class="tab__link" onclick="openTab(event, 'seedschangtime')">Seeds Changing Time</a>
                <a href="#" class="tab__link" onclick="openTab(event, 'statistics')">Statistics</a>
            </div>
        </div>
        
    <div class="search">
            <input id="searchInTable" type="search" class="table__search" placeholder="Search by date, employee name, seeds..." onkeyup="">   
        </div>

        <div id="workinghours" class="tabcontent">
            <div>
                <table id="table" class="table">
                    <tr class = "">
                        <th class="table__heading">
                            Employee
                        </th>
                        <th class="table__heading">
                            Date
                        </th>
                        <th class="table__heading">
                            Hours Total
                        </th>
                        <th class="table__heading">
                            Bags Total
                        </th>
                        <th class="table__heading">
                            Bags / Hour
                        </th>
                        <th class="table__heading">
                            
                        </th>
                    </tr>
                    <tr class="table__row">
                        <td class="table__text">
                            Amanda
                        </td>
                        <td class="table__text">
                            02.07.2022
                        </td>
                        <td class="table__text">
                            7.3
                        </td>
                        <td class="table__text">
                            1
                        </td>
                        <td class="table__text">
                            1
                        </td>
                        <td class="table__text table__edit">
                            <button class = "btn btn__green edit__btn">Edit</button>
                        </td>
                    </tr>
                    <tr class="table__row">
                        <td class="table__text">
                            Kenya
                        </td>
                        <td class="table__text">
                            03.07.2022
                        </td>
                        <td class="table__text">
                            7.3
                        </td>
                        <td class="table__text">
                            1
                        </td>
                        <td class="table__text">
                            1
                        </td>
                        <td class="table__text table__edit">
                            <button class = "btn btn__green edit__btn">Edit</button>
                        </td>
                    </tr>
                </table>
            </div>
        </div>

        <div id="seedschangtime" class="tabcontent">
            <div>
                <table id="table" class="table">
                    <tr class = "">
                        <th class="table__heading">
                            Employee
                        </th>
                        <th class="table__heading">
                            Date
                        </th>
                        <th class="table__heading">
                            Seeds
                        </th>
                        <th class="table__heading">
                            Type
                        </th>
                        <th class="table__heading">
                            Changing Time
                        </th>
                        <th class="table__heading">
                            
                        </th>
                    </tr>
                    <tr class="table__row">
                        <td class="table__text">
                            Amanda
                        </td>
                        <td class="table__text">
                            02.07.2022
                        </td>
                        <td class="table__text">
                            Broccoli
                        </td>
                        <td class="table__text">
                            Medium
                        </td>
                        <td class="table__text">
                            0:20
                        </td>
                        <td class="table__text table__edit">
                            <button class = "btn btn__green edit__btn">Edit</button>
                        </td>
                    </tr>
                    <tr class="table__row">
                        <td class="table__text">
                            Amanda
                        </td>
                        <td class="table__text">
                            02.07.2022
                        </td>
                        <td class="table__text">
                            Pepper
                        </td>
                        <td class="table__text">
                            Small
                        </td>
                        <td class="table__text">
                            0:20
                        </td>
                        <td class="table__text table__edit">
                            <button class = "btn btn__green edit__btn">Edit</button>
                        </td>
                    </tr>
                </table>
            </div>
        </div>

        <div id="statistics" class="tabcontent">

            
    
            <div>
                <table id="table" class="table">
                    <tr class = "table__row">
                        <th class="table__heading">
                            Employee
                        </th>
                        <th class="table__heading">
                            Rate/hour
                        </th>
                        <th class="table__heading">
                            Hours/week
                        </th>
                        <th class="table__heading">
                            Packets/day
                        </th>
                        <th class="table__heading">
                            Packets/hour
                        </th>
                        <th class="table__heading">
                            Min for 1 Packet
                        </th>
                        <th class="table__heading">
                            L.P. Cost
                        </th>
                    </tr>
                    <tr class="table__row">
                        <td class="table__text">
                            Amanda
                        </td>
                        <td class="table__text">
                            $13.5
                        </td>
                        <td class="table__text">
                            7.3
                        </td>
                        <td class="table__text">
                            3109.5
                        </td>
                        <td class="table__text">
                            415.99
                        </td>
                        <td class="table__text">
                            0.152
                        </td>
                        <td class="table__text">
                            $0.0325
                        </td>
                    </tr>
                    
                </table>
            </div>
        </div>

→ Ссылка