Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

"Tati" continua aparecendo após a filtragem

Fiz como foi orientado na aula: adicionei a expressão regular e usei-a com o método test() para realizar a filtragem.

Entretanto, ao adicionar o "Pedro" e a "Tati" e tentar realizar uma nova filtragem, percebi que a "Tati" permanece visível na tabela mesmo se procurar apenas pelos nomes que contém "P".

"Pedro" e "Paulo", por sua vez, aparecem conforme previsto.

Segue abaixo o código que utilizei (um pouco diferente do sugerido na aula, mas que acredito ser equivalente).

Aguardo sugestões!

Obrigado.

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

campoFiltro.addEventListener("input", function(event) {
  var pacientes = document.querySelectorAll(".paciente");

  if (this.value.length > 0) {
    for (var i = 0; i < pacientes.length; i++) {
      var nome = pacientes[i].querySelector(".info-nome").textContent;
      var expressao = new RegExp(this.value, "i");
      if (!expressao.test(nome)) {
        pacientes[i].classList.add("invisivel");
      } else {
        pacientes[i].classList.remove("invisivel");
      }
    }
  } else {
    for (var j = 0; j < pacientes.length; j++) {
      pacientes[j].classList.remove("invisivel");
    }
  }
});
1 resposta
solução!

Já resolvi. O problema estava no form.js, na função que atribuía os dados dos pacientes às respectivas classes do HTML.

Obrigado mesmo assim.

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