Olá pessoal,
var campoFiltro = document.querySelector("#filtrar-tabela");
campoFiltro.addEventListener("input", function () {
var pacientes = document.querySelectorAll(".paciente");
if (this.value.length > 0) {
pacientes.forEach(function(paciente){
var nome = paciente.querySelector(".info-nome").textContent;
var expressao = new RegExp(this.value, "i");
/* Essa logica tambem nao funciona, mesmo se digitar o nome correto ele nao é exibido
if(nome != this.value){
paciente.classList.add("invisivel");
}else{
paciente.classList.remove("invisivel");
}*/
if (!expressao.test(nome)) {
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");
}
}
});
Acima temos uma tentativa de implementar a função de filtrar vista na aula 8, porém, apesar dela me parecer semelhante ao que consta no arquivo final do projeto do curso, não funciona. Ao digitar qualquer coisa no input os pacientes da tabela desaparecem todos, mesmo que seja digitado um nome correto ele não volta a ficar visivel, apenas quando o campo é limpo os pacientes voltam a ser exibidos.
Fiz algumas tentativas de debug com o console.log() mas não consegui entender exatamente o problema, alguém poderia me ajudar ?
Desde já, obrigado !