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

Cannot set properties of null (setting 'innerHTML')

Alguém pode me ajudar?

O erro:

listaDeTarefas.js:11 Uncaught TypeError: Cannot set properties of null (setting 'innerHTML') at HTMLButtonElement.criarTarefa (listaDeTarefas.js:11)

Meu código: INDEX.HTML:

Ceep

  <form class="form" action="">
    <input class="form-input" type="text" data-form-input>
    <button class="form-button" data-form-button> Novo Item </button>
  </form>

  <ul class="list">
  <li class="task" data-task>
    <p class="content">
      comprar um abacate
    </p>
  </li>
  </ul>
</div>
<script src="listaDeTarefas.js"></script>
</body>

JS: const criarTarefa = (evento) => {

evento.preventDefault()

const input = document.querySelector('[data-form-input]')
const valor = input.value

const tarefa = document.querySelector(['data-task'])    
const conteudo = `<p class="content">${valor}</p>`

tarefa.innerHTML = conteudo

input.value = " "

}

const novaTarefa = document.querySelector('[data-form-button]')

novaTarefa.addEventListener('click', criarTarefa)

2 respostas
solução!

Fala Vanessa, tudo bem? Espero que sim!

O problema está na função criarTarefa, onde na criação da variável tarefa você passa um valor incorreto para o querySelector: ['data-task'], sendo o correto '[data-task]', ja que você estaria passando uma array como parâmetro e não uma string, assim ficando a função:

const criarTarefa = (evento) => {
evento.preventDefault()

const input = document.querySelector('[data-form-input]')
const valor = input.value

const tarefa = document.querySelector('[data-task]')    
const conteudo = `<p class="content">${valor}</p>`

tarefa.innerHTML = conteudo

input.value = " "
}

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

Aaahh, muito obrigada!