2
respostas

[Dúvida] erro

**Já olhei de tudo mas n funciona, o erro diz ser no verificarListaVazia, MAS N POSSUI NENHUM ERRO... **

function verificarListaVazia(listaDeCompras) { 
    const mensagemListaVazia = document.querySelector('.mensagem-lista-vazia'); // Obtém o elemento da mensagem

    if (!mensagemListaVazia) {
        console.error("Elemento '.mensagem-lista-vazia' não encontrado no DOM.");
        return;
    }

    const itensDaLista = listaDeCompras.querySelectorAll('li');  // Seleciona todos os itens da lista
    mensagemListaVazia.style.display = itensDaLista.length === 0 ? 'block' : 'none';// Se a lista estiver vazia, mostra a mensagem. Caso contrário, oculta.

}

export default verificarListaVazia;

import { criarItemDaLista } from "./scripts/criarItemDaLista.js";  // Importação da função criarItemDaLista
import verificarListaVazia from "./scripts/verificarListaVazia.js";// Importação da função verificarListaVazia
document.addEventListener('DOMContentLoaded', () => {
    const listaDeCompras = document.getElementById('lista-de-compras');
    const botaoAdicionar = document.getElementById('adicionar-item');
    

    // Evento para adicionar item à lista
    botaoAdicionar.addEventListener('click', (evento) => {
        evento.preventDefault();  // Previne o comportamento padrão de envio de formulário
        const itemDaLista = criarItemDaLista();  // Cria o item a partir da função criarItemDaLista
        listaDeCompras.appendChild(itemDaLista);  // Adiciona o item à lista de compras no HTML
        verificarListaVazia(listaDeCompras);  // Verifica se a lista está vazia após adicionar o item
    });

    
   
 verificarListaVazia(listaDeCompras); // Verifica se a lista está vazia ao carregar a página
});
2 respostas

Oi Jean! Tudo bem?

O erro parece estar relacionado ao elemento com a classe .mensagem-lista-vazia não sendo encontrado no DOM. Isso pode acontecer se o elemento não estiver presente na página no momento em que a função é chamada. Trouxe algumas sugestões para resolver o problema:

  1. Verifique a presença do elemento no HTML: Certifique-se de que o elemento com a classe .mensagem-lista-vazia realmente existe no HTML da sua página. Um exemplo de como ele pode estar no HTML é:

    <div class="mensagem-lista-vazia" style="display: none;">A lista está vazia!</div>
    
  2. Ordem de carregamento do DOM: Assegure-se de que o script está sendo executado após o DOM ter sido completamente carregado. Você já está usando o DOMContentLoaded, o que é ótimo. Apenas certifique-se de que o HTML está corretamente estruturado para que o elemento esteja disponível quando o script for executado.

  3. Verifique o seletor: Verifique se o seletor .mensagem-lista-vazia está correto e corresponde exatamente ao que está no HTML. Qualquer diferença, mesmo que pequena, pode impedir que o elemento seja encontrado.

  4. Console de erros: Se o elemento não for encontrado, você verá a mensagem de erro no console: "Elemento '.mensagem-lista-vazia' não encontrado no DOM." Isso pode ajudar a diagnosticar se o problema está realmente na ausência do elemento.

Se essas sugestões não resolverem o problema, pode ser útil revisar o console do navegador para ver se há outras mensagens de erro que possam dar mais pistas sobre o que está acontecendo.

Espero ter ajudado. Conte com o apoio do fórum :)

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado

O html não possui erro e está tudo bem certinho... imagem de um erro 404![imagem de do meu codigo