2017-02-09 3 views
0

Ich habe eine Tabelle und ein Suchfeld. Ich bin Filtern der Tabelle, wenn ich etwas in das Suchfeld mit diesem Skript ein:Tabelle bei Suchergebnissen ausblenden 0

$(document).ready(function(){ 
    // Write on keyup event of keyword input element 
    $("#buscador").keyup(function(){ 

     var $rows1 = $('#tablaproyectos1 tbody>tr'); 
     $('#buscador').keyup(function() { 
      var val = $.trim($(this).val()).replace(/ +/g, ' ').toLowerCase(); 

      $rows1.show().filter(function() { 
       var text = $(this).text().replace(/\s+/g, ' ').toLowerCase(); 
       return !~text.indexOf(val); 
      }).hide(); 
     }); 
    }); 
}); 

Meine Frage ist: Wie kann ich den Tisch verstecken, wenn es keine Ergebnisse aus der Suche sind?

Antwort

0

So etwas sollte funktionieren:

$(document).ready(function(){ 
 
    // Write on keyup event of keyword input element 
 
    $("#buscador").keyup(function(){ 
 

 
     var $rows1 = $('#tablaproyectos1 tbody>tr'); 
 
     $('#buscador').keyup(function() { 
 
      $('#tablaproyectos1').show(); 
 
      var val = $.trim($(this).val()).replace(/ +/g, ' ').toLowerCase(); 
 

 
      $rows1.show().filter(function() { 
 
       var text = $(this).text().replace(/\s+/g, ' ').toLowerCase(); 
 
       return !~text.indexOf(val); 
 
      }).hide().addClass('hide'); 
 
      if ($('#tablaproyectos1 tbody>tr:visible').length == 0) { 
 
       $('#tablaproyectos1').hide(); 
 
      } 
 
     }); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" id="buscador" /> 
 
<table id="tablaproyectos1" style="border: 2px solid blue;"> 
 
    <tbody> 
 
    <tr> 
 
     <td>Esto es una prueba de celda</td> 
 
     </tr> 
 
    <tr> 
 
     <td>Texto de relleno</td> 
 
     </tr> 
 
    <tr> 
 
     <td>Otra celda de prueba</td> 
 
     </tr> 
 
    <tr> 
 
     <td>Suficiente para comprobar el buscador</td> 
 
     </tr> 
 
    </tbody> 
 
    </table>

Es funktioniert die sichtbaren Zeilen zu zählen. Wenn die Gesamtlänge 0 ist, verstecken Sie die Elterntabelle. Tabelle wird immer am Anfang angezeigt.

+0

danke für deine antwort. Ich habe ein paar Probleme. In Ihrem Code-Snippet funktioniert es perfekt, aber wenn ich den Code in meine Seite lege, wird die Tabelle ausgeblendet, aber wenn ich den Text im Textfeld lösche, wird die Tabelle nicht mehr angezeigt. Was kann ich tun? –

+0

hat es behoben. Ich habe gerade .addClass ('hide') entfernt –

+0

Gern geschehen. Ja, ich versuche zuerst, Tabelle für Klasse zu verstecken, und ich vergesse, diesen Code zu entfernen. –

Verwandte Themen