Boas, galere!
Montei meu código de acordo com a estrutura ensinada nas aulas, com exceção do loop, que no lugar do for eu substitui pelo forEach.
Eu pensava que os dois eram equivalentes, mas na hora de testar na página o código simplesmente não funcionou. O depurador não acusou nenhum tipo de erro, inclusive.
Achei bem estranho. Alguém consegue me dizer o que há de errado?
codigo com 'for':
var campoInput = document.querySelector("#filtrar-tabela");
campoInput.addEventListener("input",function(){
var pacientes = document.querySelectorAll(".paciente");
if(this.value.length > 0){
for(var i=0; i<pacientes.length; i++){
var paciente = pacientes[i];
var tdNome = paciente.querySelector(".info-nome");
var nome = tdNome.textContent;
var expressao = new RegExp(this.value,"i");
if(expressao.test(nome)){
paciente.classList.remove("invisivel")
} else{
paciente.classList.add("invisivel")
}
}
} else{
pacientes.forEach(function(paciente){
paciente.classList.remove("invisivel");
});
}
})
código com o 'forEach':
var campoInput = document.querySelector("#filtrar-tabela");
campoInput.addEventListener("input",function(){
var pacientes = document.querySelectorAll(".paciente");
if(this.value.length > 0){
pacientes.forEach(function(paciente){
var tdNome = paciente.querySelector(".info-nome");
var nome = tdNome.textContent;
var expressao = new RegExp(this.value,"i");
if(expressao.test(nome)){
paciente.classList.remove("invisivel")
} else{
paciente.classList.add("invisivel")
}
});
} else{
pacientes.forEach(function(paciente){
paciente.classList.remove("invisivel");
});
}
})