3
respostas

Erro JavaScript

remover-pacientes.js

var pacientes = document.querySelectorAll(".paciente");

pacientes.forEach.call(pacientes,function(paciente) {
    paciente.addEventListener("dblclick", function() {
        this.remove();
    });
});

Está apresentando o seguinte erro no navegador.

Uncaught TypeError: Cannot read property 'call' of undefined

Já esse código funciona normalmente no mesmo navegador

function exibeMensagensDeErros(erros){
    var ul = document.querySelector("#mensagem-erro");
    ul.innerHTML= "";
    erros.forEach(function(erro) {
        var li = document.createElement("li");
        li.classList.add("mensagem-erro");
        li.textContent = erro;
        ul.appendChild(li);

    });
}
3 respostas

Isso acontece porque querySelectorAll não retorna um Array e sim um NodeList. Não são todos os navegadores que suportam forEach em NodeList. Uma alternativa seria:

[].forEach.call(pacientes, function(paciente) {
  // seu código
});
pacientes.forEach.call(pacientes,function(paciente) {
    paciente.addEventListener("dblclick", function() {
        this.remove();
    });
});

Erro no navegador: Uncaught TypeError: Cannot read property 'call' of undefined

A sintaxe é essa:

[].forEach.call(pacientes, function(paciente) {
    paciente.addEventListener("dblclick", function() {
        this.remove();
    });
});

Confira também se o seu querySelectorAll está retornando resultados e seu pacientes possui valores.

Espero ter ajudado!

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