GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Propriedade addEventListener com erro

programação
Tags: #<Tag:0x00007f6538986148>
#1

Boa tarde GUJ,

Estou fazendo um exercício relacionado ao calculo de IMC, possuo pacientes dentro da tag tr no próprio HTML,o exercício consiste em fazer com que não seja necessário adicionar mais td no HTML sempre que existir novos clientes, mas sim ocorrer o preenchimento do formulário que está logo abaixo da tabela. Para chegar e fazer o botão funcionar eu utilizei um addEventListener, como abaixo:

O grande problema é que o addEventListener não está funcionando, aparecendo
a seguinte mensagem:

Uncaught TypeError: Cannot read property ‘addEventListener’ of undefined

Onde eu definiria ela? Já tentei até declarar a variável título, sem sucesso.

Código .js:

var pacientes = document.querySelectorAll(".paciente"); //Classe selecionada para o loop.

//Loop logo abaixo...

for (var i = 0; i < pacientes.length; i++) { //length para selecionar toda a lista.

    var paciente = pacientes[i];

    var tdPeso = paciente.querySelector(".info-peso");
    var peso = tdPeso.textContent;

    var tdAltura = paciente.querySelector(".info-altura");
    var altura = tdAltura.textContent;

    var tdImc = paciente.querySelector(".info-imc");

//Validações do código...

    var pesoEhValido = true;
    var alturaEhValida = true;

    if (peso <= 0 || peso >= 1000) {
        console.log("Peso inválido!");
        pesoEhValido = false;
        tdImc.textContent = "Peso inválido";
        paciente.classList.add("paciente-invalido")
    }

    if (altura <= 0 || altura >= 3.00) {
        console.log("Altura inválida!");
        alturaEhValida = false;
        tdImc.textContent = "Altura inválida";
        paciente.classList.add("paciente-invalido") //classList.add serve para adicionar uma classe ao código.
    }

  if (alturaEhValida && pesoEhValido) {
        var imc = peso / (altura * altura);
        tdImc.textContent = imc.toFixed(2); //toFixed para limitar a quantidade de decimais.
    }
}

var titulo = titulo

titulo.addEventListener("click", function (){
console.log("Clicado.")
});
0 Likes

#2

Boa tarde @Rosmano!

Poste o HTML também, facilita para que possamos ajudar.

Acima do próprio titulo.addEventListener você está declarando que titulo = titulo , da onde está vindo esse titulo? ele não está declarado em nenhum parte do seu código js postado aqui.

0 Likes

#3

@Rosmano para que você possa vincular um evento a um elemento pelo addEventListener primeiramente você precisa ‘selecionar’ no DOM o elemento titulo, por exemplo algo assim:

var titulo = document.querySelector('#titulo');
0 Likes