1
resposta

Problema com filtragem por causa da classe invisivel

Boa tarde. Não estou conseguindo incluir a classe invisível na td do elemento criado por ultimo. O filtro só funciona para os elementos que estão no html, quando incluo paciente usando o formulário ou importo do json, a classe não é adicionada nas novas TDs. Podem me ajudar?

Insira aqui a descrição dessa imagem para ajudar na acessibilidade Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá Laís, tudo bem com você?

Peço desculpas pela demora em lhe responder.

O erro apresentado, cannot read properties of null está informando que ocorre a tentativa de acesso a uma propriedade de um elemento nulo (vazio). Esse erro está sendo levantado devido a query que coleta o nome do paciente no arquivo filtra.js (var tdNome = paciente.querySelector('.info-nome');) está retornando um valor nulo devido à tentativa de busca de uma classe não existente.

No momento em que ocorre a criação da tr dos pacientes no arquivo form.js ocorreu um erro de digitação no nome da classe info-nome da td nome, ela foi escrita da seguinte forma: info-mome (iniciando com m).

Peço que localize no arquivo form.js a função montarTr e no momento em que ocorre a criação da td do campo nome, deixe a declaração como apresentada abaixo.

pacienteTr.appendChild(montaTd(paciente.nome, 'info-nome'));

Após realizar a mudança, salve o arquivo form.js. Abra o arquivo index.html no navegador, adicione um novo paciente a tabela e verifique se o mesmo é filtrado ao utilizar o campo de filtro.

Código completo da função montarTr para comparação

function montarTr(paciente) {


    var pacienteTr = document.createElement('tr');
    pacienteTr.classList.add('paciente');

    pacienteTr.appendChild(montaTd(paciente.nome, 'info-nome'));
    pacienteTr.appendChild(montaTd(paciente.peso, 'info-peso'));
    pacienteTr.appendChild(montaTd(paciente.altura, 'info-altura'));
    pacienteTr.appendChild(montaTd(paciente.gordura, 'info-gordura'));
    pacienteTr.appendChild(montaTd(paciente.imc, 'info-imc'));

    return pacienteTr;
}

Espero ter lhe ajudado. Em caso de dúvidas estou à disposição.

Não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!