código do script remove-livro.js:
let tabelaLivros = document.querySelector('#livros');
tabelaLivros.addEventListener('click', (evento) => {
let elementoClicado = evento.target;
if (elementoClicado.dataset.type == 'remocao') {
let livroId = elementoClicado.dataset.ref;
fetch(`http://localhost:3000/livros/${livroId}`, { method: 'DELETE' })
.then(resposta => {
let tr = elementoClicado.closest(`#livro_${livroId}`);
tr.remove();
})
.catch(erro => console.log(erro));
}
});
Código html em lista.marko:
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<h1> Listagem de livros </h1>
<table>
<tr>
<td>ID</td>
<td>Título</td>
<td>Preco</td>
<td>Editar</td>
<td>Remover</td>
</tr>
<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>
</table>
<script src="/estatico/js/remove-livro.js"></script>
</body>
</html>
Estou com o erro
remove-livro.js:2 Uncaught TypeError: Cannot read property 'addEventListener' of null at remove-livro.js:2
aparecendo no console do chrome, estou usando o código exatamente como você utilizou, professor! Me tire dessas trevas por favor. Conferi mil vezes o código, o que poderia ser?