Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

closest()

Gostaria de entender o que a função closest() faz e por que está sendo passado esse parâmetro. No alert estou recebendo null, então a página não é atualizada porque a tr nao é removida

let tr = elemento.closest(`#livro_${livroId}`);
                alert(tr);
                tr.remove();
4 respostas

Boa noite, Lucas! Como vai?

O closest() é um método do JS que roda no browser, portanto, não tem ligação nenhuma com o NodeJS. Dito isso, o que ele faz é selecionar o elemento mais próximo que atenda o seletor passado como parâmetro.

Se o alert() está devolvendo null, provavelmente deve haver algum erro na sua página de listagem de livros. Vc poderia colar o código dela aqui para eu dar uma olhada?

Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Coloquei no github https://github.com/ludu25/node-alura

solução

Opa, Lucas!

Veja que nessa aula todas as tags tr tem um id no formato livro_${livro.id}. Esse trecho de código no arquivo lista.marko está assim:

<tr id="livro_${livro.id}" for (livro in data.livros)> 
     <td>${livro.id}</td>
     <td>${livro.titulo}</td>
     <td>${livro.preco}</td>
     <td><a href="#">Editar</a></td> 
     <td><a href="#" data-ref="${livro.id}" data-type="remocao">Remover</a></td> 
</tr>

É justamente esse id que está faltando no seu código. Veja se ao fazer essa correção as coisas funcionam como vc esperava.

Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

obrigado, era esse o problema.