Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Não consigo filtrar as novas adições de paciente

Não sei porque meu código não filtra para novos pacientes que eu adiciono, se o paciente ja está na tabela fica normal

segue o código do filtro

var campoFiltro = document.querySelector("#filtroTabela");

//fazendo um evento para o filtro de nome
campoFiltro.addEventListener("input", function () {

    var pacientes = document.querySelectorAll(".paciente");

    if (this.value.length > 0) {

        //pegando o nome dos pacientes mais rapidamente
        for (var i = 0; i < pacientes.length; i++) {
            var paciente = pacientes[i];
            var tdNome = paciente.querySelector(".info-nome");
            var nome = tdNome.textContent;

            //RegExp - 
            var expressão = new RegExp(this.value, "i");

            //comparando o nome digitado no filtro com o nome da tabela
            if (expressão.test(nome)) {
                paciente.classList.remove("invisivel")
            } else {
                paciente.classList.add("invisivel")
            }
        }
    } else {
        // para remover o efeito de todos mais rapidamente
        for (var i = 0; i < pacientes.length; i++) {
            var paciente = pacientes[i];
            paciente.classList.remove("invisivel");
        }
    }
})
4 respostas

Os novos pacientes tem a classe .paciente? (os que foram adicionados depois)

Como eu faço para colocar uma class para os pacientes que foram adicionados? acho que não coloquei classe nesses novos por isso não esta indo.

Vai no seu código que adiciona um novo paciente na tabela, cola ele aqui também pq ai fica mais fácil de explicar, mas basicamente você vai na

que você criou e adiciona a classe paciente
solução!

é que seu filtro funciona buscando tudo que tem a classe . paciente, esse é o problema acredito eu, como elas não tem a classe paciente, não são utilizadas pelo filtro.