2017-04-16 18 views
1

使用表w3schools上的表排序作为基础,如何保持表头不会在搜索表时消失?保留表头以隐藏搜索结果

$(document).ready(function(){ 
    $('#search-attorneys').on('keyup', function(){ 
    var input, filter, table, tr, td, i; 
    input = $("#search-attorneys"); 
    filter = $("#search-attorneys").val().toUpperCase(); 
    table = $("#attorneys"); 
    tr = $("tr"); 
    for (i = 0; i < tr.length; i++) { 
     tds = tr[i].getElementsByTagName("td"); 
     var found = false; 
     for (j = 0; j < tds.length; j++) { 
     td = tds[j]; 
     if (td) { 
      if (td.innerHTML.toUpperCase().indexOf(filter) > -1) { 
      found = true; 
      break; 
      } 
     } 
     } 
     if (found) { 
     tr[i].style.display = ""; 
     } else { 
     tr[i].style.display = "none"; 
     } 
    } 
    }); 
}); 

的jsfiddle:LINK

回答

0

你需要做的改变在第一个for循环: -

for (i = 1; i < tr.length; i++) { // not start with 0 start with 1. 

来离开桌子<thead><tr>,然后开始休息<tr>搜索。

注意: - 检查它,如果你有任何问题。我会为你创造一个榜样。

+0

垫很高兴帮助你:) :) :) –

0

这可以通过将在TBODY的行,并改变variabl可以容易地实现,E tr选择器。

$(document).ready(function(){ 
 
    $('#search-attorneys').on('keyup', function(){ 
 
    var input, filter, table, tr, td, i; 
 
    input = $("#search-attorneys"); 
 
    filter = $("#search-attorneys").val().toUpperCase(); 
 
    table = $("#attorneys"); 
 
    tr = $("tbody tr"); // CHANGED 
 
    for (i = 0; i < tr.length; i++) { 
 
     tds = tr[i].getElementsByTagName("td"); 
 
     var found = false; 
 
     for (j = 0; j < tds.length; j++) { 
 
     td = tds[j]; 
 
     if (td) { 
 
      if (td.innerHTML.toUpperCase().indexOf(filter) > -1) { 
 
      found = true; 
 
      break; 
 
      } 
 
     } 
 
     } 
 
     if (found) { 
 
     tr[i].style.display = ""; 
 
     } else { 
 
     tr[i].style.display = "none"; 
 
     } 
 
    } 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" id="search-attorneys" placeholder="Search for names.." title="Type in a name"> 
 

 

 
<table id="attorneys"> 
 
    <thead class="cf"> 
 
      <tr> 
 
      <th class="numeric">attorney</th> 
 
      <th class="numeric">location</th> 
 
      <th class="numeric">practice area</th> 
 
      <th class="numeric">email</th> 
 
      <th class="numeric">phone</th> 
 
      </tr> 
 
     </thead> 
 
     <tbody> 
 
      <tr> 
 
    <td data-title="location">Alfreds Futterkiste</td> 
 
    <td>Germany</td> 
 
    </tr> 
 
    <tr> 
 
    <td>Berglunds snabbkop</td> 
 
    <td>Sweden</td> 
 
    </tr> 
 
    <tr> 
 
    <td>Island Trading</td> 
 
    <td>UK</td> 
 
    </tr> 
 
    <tr> 
 
    <td>Koniglich Essen</td> 
 
    <td>Germany</td> 
 
    </tr> 
 
    <tr> 
 
    <td>Laughing Bacchus Winecellars</td> 
 
    <td>Canada</td> 
 
    </tr> 
 
    <tr> 
 
    <td>Magazzini Alimentari Riuniti</td> 
 
    <td>Italy</td> 
 
    </tr> 
 
    <tr> 
 
    <td>North/South</td> 
 
    <td>UK</td> 
 
    </tr> 
 
    <tr> 
 
    <td>Paris specialites</td> 
 
    <td>France</td> 
 
    </tr> 
 
     </tbody> 
 
</table>