Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

appendChild dando erro

quando vou no navegador e aperto o botão de novo ítem, alem de não acontecer nada na página, no console é exibida essa mensagem de erro: "listaDeTarefas.js:16 Uncaught TypeError: Failed to execute 'appendChild' on 'Node': parameter 1 is not of type 'Node'. at HTMLButtonElement.criarTarefa (listaDeTarefas.js:16)"

segue meu código do js.

const criarTarefa = (evento)=> {

    evento.preventDefault();

    const lista = document.querySelector("[data-list]");
    const input = document.querySelector("[data-form-input]");
    const valor = input.value;

    const tarefa = document.createElement("li");
    tarefa.classList.add("task");

    const conteudo = `<p class= "content">${valor}</p>`;

    tarefa.innerHTML = conteudo;

    tarefa.appendChild(BotaoConclui());
    lista.appendChild(tarefa) ;
    input.value = " ";

}

const novatarefa = document.querySelector("[data-form-button]");

novatarefa.addEventListener("click", criarTarefa);

const BotaoConclui = ()=> {
    const botaoConclui = document.createElement("button");

    botaoConclui.addEventListener("click", () => {
        console.log("fui clicado");

        return botaoConclui;
    });
}
3 respostas

Dae Ighor

na sua funcao const BotaoConclui tem q retornar o botaoConclui.

No momento ela nao retorna nada, entao quando o essa funcao tarefa.appendChild(BotaoConclui()); tenta incluir um filho ela inclui um null e isso causa um erro de sintaxe.

Abraços

solução!

Fala Ighor, tudo bem? Espero que sim!

O problema é que você está retornando a variavel botaoConclui dentro do addEventListenr, assim, quando chamamos a função BotaoConclui ela não nos retorna nada, pois estamos retornando dentro do event listener e não na função diretamente. Então para arrumar o erro basta retornar na função diretamente:

const BotaoConclui = ()=> {
    const botaoConclui = document.createElement("button");

    botaoConclui.addEventListener("click", () => {
        console.log("fui clicado");
    });

    return botaoConclui;
}

Espero ter ajudado, abraços e bons estudos :D

era isso msm, obg pelas respostas