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

Aula 5.7

Não entendi a explicação desta linha de código no final da aula:

      $copyCard.querySelector('.card-content').textContent =      $newCardContent.value;

Grato!

5 respostas

Ele vai pegar o conteúdo que você criou para o card novo e vai adicionar na copia do card que você fez.

Por que não utilizei o value e sim o textcontent???

porque quando você usa o value você esta pegando o attribute value de um input porem você esta esta adicionando conteudo a uma tag p e esse conteúdo esta dentro do content dela , esse comando é similar ao text() do jquery

Ok, entendi.

Ocorre que justamente quando vou inserir um novo card, ao clicar sobre Salvar, é retornado a mensagem no console :

Uncaught TypeError: Cannot read property 'insertBefore' of null

O JS está assim:

var $newCard = document.querySelector(".newCard");
var $newCardContent = document.querySelector(".newCard-content");
var $newCardAction = document.querySelector(".newCard-action");

$newCard.addEventListener('submit', function(event){
    event.preventDefault();
    if ($newCardContent.value == '') {
        if (document.querySelector('.error') == null) {
            var $error = document.createElement('span');
            $error.classList.add('error');
            $error.textContent = 'Favor preencher algum conteúdo!';
            $newCard.insertBefore($error, $newCardAction);
        };
    } else {
      var $wrapCard = document.querySelector('.wrapCard');
      var $card = document.querySelector('.card');
      var $copyCard = document.querySelector('.card').cloneNode(true);
      $copyCard.querySelector('.card-content').textContent =  $newCardContent.value;
      $wrapCard.insertBefore($copyCard, $card);
    };
});
solução!

Pq vc esta usando wrapCard porem não seria wrap-card