Solucionado (ver solución)
Solucionado
(ver solución)
1
respuesta

Lo que hice en el aula para filtrar una tabla

Adición del textBox con input

        <main>
            <section class="container">
                <h2>Mis pacientes</h2>
                <label for="filtrar-tabla"></label>
                <input type="text" name="filtro"
                id="filtrar-tabla" placeholder="Digite el nombre del paciente">
                <table>
                    <thead>
                        <tr>

Adición del archivo filtrar.js a HTML

<script src="js/calcular-imc.js"></script>
        <script src="js/form.js"></script>
        <script src="js/eliminar-paciente.js"></script>
        <script src="js/filtrar.js"></script>

Código del archivo filtrar

    var campoFiltro = document.querySelector("#filtrar-tabla");

    //FILTRANDO LOS PACIENTES DE LA TABLA.

    //conformacion del INPUT.
    //A todo INPUT se le relaciona un LABEL.

    //CCS, la parte visual y se arregla los pixeles.

    //src=filtrar.js adicionarse al index.hmtl.

    //Usamos el objeto CAMPOFILTRO y el escuchador de eventos.
    campoFiltro.addEventListener('input',function(){
        var pacientes = document.querySelectorAll(".paciente");

        if(this.value.length > 0){
            console.log('Hay algunas letras digitadas');
    //Lo que necesitamos hacer es colocar toda la iteraccion FOR dentro de IF, porque si if es mayor que cero que corra el FOR; SI NO (else) volver los paciente a la pantalla con var paciente = pacientes [i]); y se remueve la clase invisible.
            for(var i = 0; i < pacientes.length; i++){
                var paciente = pacientes [i];
                var tdNombre = paciente.querySelector(".info-nombre");
                var nombre = tdNombre.textContent;

                var expresion = new RegExp(this.value, 'i');
                    //RegExp
                    //if(nombre != this.value){
                        //a --> Pedro, como a no es parte de Pedro lo vuelve invisible. entra al if.
                        //a --> Pablo, como si es parte entra al else y remueve invisible es decir lo vuelve visible.
                    if(!expresion.test(nombre)){
                        paciente.classList.add("invisible");                    
                    }else{
                        paciente.classList.remove("invisible");
                }
            }                    
        }else{
            for(var i = 0; i < pacientes.length; i++){
                var paciente = pacientes [i];
                paciente.classList.remove("invisible");

                //EXPRESIONES REGULARES para búsqueda de contenido. Para ello vamos a crear var expresion y vamos a usar un objeto de JS = new RegExp(this.value,'i'); y le pasamos dos parámetros. Uno de ellos es case-insensitive matching, que hace es activar la búsqueda sin diferenciar entre mayúsculas y minúsculas.
            }
        }
    });
1 respuesta
solución!

Hola Yeimer, espero que estés bien! Gracias por compartir tu código con nosotros. Si tiene alguna pregunta sobre el contenido del curso, estamos aquí para ayudarlo. ¡Sigue practicando! ¡Vamos juntos!

Si este post te ayudó, por favor, marca como solucionado ✓.