Como evitar o erro de TypeError: Cannot set property 'X' of undefined ao trabalhar com DOM?

Esse erro ocorre quando você tenta definir uma propriedade de um objeto ou elemento que é undefined.

O erro TypeError: Cannot set property 'X' of undefined ocorre quando você tenta acessar ou modificar uma propriedade de um objeto ou elemento que não foi definido. No contexto do DOM, isso pode acontecer quando você tenta manipular um elemento que não existe ou que ainda não foi carregado.

Exemplo de erro:

let element = document.getElementById('nonexistent');
element.style.color = 'red'; // TypeError: Cannot set property 'style' of null

Neste exemplo, o erro ocorre porque o elemento com o ID 'nonexistent' não existe no DOM, resultando em null. Como você não pode acessar ou modificar propriedades de null, o erro é disparado.

Exemplo corrigido:

let element = document.getElementById('existing');
if (element) {
    element.style.color = 'red';
}

Aqui, usamos uma verificação if para garantir que o elemento realmente exista antes de tentar modificar suas propriedades. Isso previne o erro.

Como corrigir?

Sempre que você estiver manipulando elementos do DOM, garanta que o elemento existe antes de tentar modificar suas propriedades. A verificação simples if (element) ajuda a garantir que o código só será executado se o elemento for encontrado.

Este erro pode ser facilmente evitado com boas práticas de validação. Ao trabalhar com o DOM, sempre verifique se o elemento existe antes de interagir com ele. Isso pode ser feito com a ajuda de verificações como if (element) ou utilizando o operador de encadeamento opcional (?.) para acessar propriedades de objetos de maneira segura.

Algumas aplicações:

  • Use verificações para garantir que o elemento esteja presente no DOM antes de modificar suas propriedades.
  • Considere o uso do encadeamento opcional (?.) para acessar propriedades de objetos de forma segura.
  • Certifique-se de que o código que manipula o DOM seja executado após o carregamento completo da página.

Dicas para quem está começando

  • Antes de modificar qualquer propriedade de um elemento, sempre verifique se ele existe no DOM.
  • Use o console.log para verificar os valores dos elementos e se eles são null ou undefined antes de tentar acessá-los.
  • Evite manipular o DOM antes do carregamento completo da página. Você pode usar eventos como DOMContentLoaded ou window.onload para garantir que o DOM esteja pronto.
Foto de Cláudia Medeiros
Contribuições de
Cláudia Medeiros

Especialista em segurança de software, desempenho de APIs e gestão de infraestrutura em nuvem.

Mais sobre o autor
Compartilhe este tutorial: Como evitar o erro de TypeError: Cannot set property 'X' of undefined ao trabalhar com DOM?

Compartilhe este tutorial

Continue aprendendo:

O que é o erro TypeError: Cannot read property 'key' of undefined?

Este erro ocorre quando você tenta acessar uma propriedade de um objeto que não foi definido ou foi atribuído como `undefined`.

Tutorial anterior

Como resolver o erro de TypeError: Cannot access property of undefined?

Esse erro ocorre quando você tenta acessar uma propriedade de um valor que é `undefined`.

Próximo tutorial