¿Cómo realizar una búsqueda y filtro en tiempo real en una tabla HTML?

Aquí, aprendemos cómo realizar una búsqueda en tiempo real y filtrar en una tabla HTML. Cuando se ingresa una palabra, se buscarán todas las filas de la tabla (excepto el encabezado de la tabla) y se mostrarán las filas que contienen la palabra coincidente. Para esto, podemos usar métodos JQuery.

  • filter(): este método se usa para filtrar todos los elementos que no coinciden con los criterios seleccionados y se devolverán esas coincidencias. Reduzca el conjunto de elementos coincidentes a aquellos que coincidan con el selector o pasen la prueba de la función.
  • toggle(): este método se utiliza para comprobar la visibilidad de los elementos seleccionados para alternar entre ocultar() y mostrar() para los elementos seleccionados. Mostrar u ocultar los elementos coincidentes.

En el siguiente ejemplo, el valor de búsqueda ingresado en el cuadro de búsqueda se almacena en la variable denominada «valor» y se convierte a minúsculas, ya que estamos realizando una búsqueda que no distingue entre mayúsculas y minúsculas. Después de eso, buscamos en cada fila de la tabla usando la función filter() y mostramos la fila donde se encuentra la string almacenada en la variable «valor». El método toggle() se usa para mostrar las filas que contienen la palabra de búsqueda y ocultar otras. indexOf (value) devuelve -1 si la palabra no se encuentra en la fila.

Ejemplo: El siguiente ejemplo ilustra el uso de la función filter() y toggle() para realizar una búsqueda y filtro en tiempo real en una tabla HTML.

<!DOCTYPE html>
<html>
  
<head>
    <script src=
"https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js">
    </script>
  
    <style>
        table {
            font-family: arial, sans-serif;
            border-collapse: collapse;
            width: 50%;
        }
          
        td,
        th {
            border: 1px solid #dddddd;
            text-align: left;
            padding: 8px;
        }
          
        h1 {
            color: green;
        }
    </style>
</head>
  
<body>
    <center>
        <h1>GeeksforGeeks</h1>
        <h3>
          perform a real time search and filter 
          on a HTML table
        </h3>
        <b>Search the table for Course, Fees or Type: 
          <input id="gfg" type="text" 
                 placeholder="Search here">
        </b>
        <br>
        <br>
        <table>
            <tr>
                <th>Course</th>
                <th>Duration</th>
                <th>Type</th>
            </tr>
            <tbody id="geeks">
                <tr>
                    <td>C++ STL</td>
                    <td>1499</td>
                    <td>Online Classes
                    </td>
                </tr>
                <tr>
                    <td>DSA Foundation</td>
                    <td>7999</td>
                    <td>Regular Classes</td>
                </tr>
                <tr>
                    <td>Geeks Classes</td>
                    <td>10799</td>
                    <td>Weekend Classes</td>
                </tr>
                <tr>
                    <td>Placement 100</td>
                    <td>9999</td>
                    <td>Online Classes</td>
                </tr>
            </tbody>
        </table>
  
        <script>
            $(document).ready(function() {
                $("#gfg").on("keyup", function() {
                    var value = $(this).val().toLowerCase();
                    $("#geeks tr").filter(function() {
                        $(this).toggle($(this).text()
                        .toLowerCase().indexOf(value) > -1)
                    });
                });
            });
        </script>
  </center>
  
</body>
  
</html>

Producción:

Publicación traducida automáticamente

Artículo escrito por SnehashishKalamkar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *