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

Paciente não fica invisível

Boa tarde pessoal. Qualquer valor inserido no filtro não altera nada na tabela, alguém pode me ajudar?

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

campoFiltro.addEventListener("input", function () {
    console.log(this.value);
    var pacientes = document.querySelectorAll(".paciente");

    if( this.value.lenght > 0){
        for (var i = 0; i < pacientes.length; i++) {
            var paciente = pacientes[i];
            var tdNome = paciente.querySelector(".info-nome");
            var nome = tdNome.textContent;
            if( nome != this.value){
                paciente.classList.add("invisivel");
            }else{
                paciente.classList.remove("invisivel");
            }
        }
    }else{
        for(var i = 0; i < pacientes.length; i++){
            var paciente = pacientes[i];
            paciente.classList.remove("invisivel");
        }
    }    
})
4 respostas

Boa tarde. Ccara, primeira coisa que eu faria, seria dar um console.log em nome e this.value pra saber se os valores estão como eu quero. Depois verificaria se o css ta sendo aplicado e se ele ta tendo resultado(veja se o elemento no dom ta com a classe, e aplica ela pra ver se o elemento ta sumindo).

solução!

Boa noite, Matheus! Como vai?

Seu primeiro if está com a condição escrita de forma incorreta!

Está assim:

if( this.value.lenght > 0){ ... }

Deveria ser assim:

if( this.value.length > 0){ ... }

Repare que vc escreveu length de maneira errada. Verifica se isso resolve o seu problema e nos diz aqui!

Grande abraço e bons estudos!

Obrigado pela ajuda pessoal, o código está funcionando.

Muito bem, Bruno!

Sempre que tiver qualquer dúvida mande aqui no fórum que o pessoal te ajuda!

Grande abraço e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software