usei os dois métodos ensinados, com regex e sem regex: 1° Problema com regex, se busco por um nome ex:"Pa" -> aparece somente Paulo na tabela, e quando eu deleto os caracteres, o nome "Paulo", continua lá e nomes restantes não voltam. 2° Problema com regex, se eu adiciona um paciente novo pelo form, na hora da busca esse paciente novo, não está recebendo a classe 'invisivel'. 3°Problema, é o mesmo que o segundo, porem sem o método regex, ou seja usando o nome.substr(0, this.value.length).
segue o busca-paciente.js
var campoFiltro = document.querySelector('#buscar-tabela');
campoFiltro.addEventListener('input', function(){
//metodo com regex
if(this.value.length > 0) {
for(var i = 0; i < pacientes.length; i++) {
var paciente = pacientes[i];
var nomeTd = paciente.querySelector('.info-nome');
var nome = nomeTd.textContent;
var expressao = new RegExp(this.value, 'i');
if(!(expressao.test(nome))) {
paciente.classList.add('invisivel');
}else {
paciente.classList.remove('invisivel');
}
}
}else {
for(var i = 0; i < pacientes.lenth; i++) {
var paciente = pacientes[i];
paciente.classList.remove('invisivel');
}
}
//metodo sem regex
/*
for(var i = 0; i < pacientes.length; i++){
var paciente = pacientes[i];
var nomeTd = paciente.querySelector('.info-nome');
var nome = nomeTd.textContent;
var comparavel = nome.substr(0, this.value.length);
var comparavelMinusculo = comparavel.toLowerCase();
var valorDigitadoMinusculo = this.value.toLowerCase();
if(!(valorDigitadoMinusculo == comparavelMinusculo)) {
paciente.classList.add('invisivel');
} else {
paciente.classList.remove('invisivel');
}
}
*/
});