Os botões a seguir, não possuem value:
Sendo assim, conforme foi mostrado no vídeo, caso sejam clicados estaremos limpando os livros da tela.
Na explicação em aula, o professor ensina pegar os values pelo getElementById por meio do this. Mas, o listener em si, já possui "uma variável" que guarda todas as informações do elemento que foi interagido.
Vou compartilhar meu código no qual já tratei o problema dos botões sem value e também utilizei o .target, deixando o código menos verboso.
const botoes = document.querySelectorAll('.btn');
botoes.forEach(btn => {
btn.addEventListener('click', (e) => filtrarLivros(e.target.value, livros));
});
function filtrarLivros(filtro, listaDeLivros) {
if (filtro != "") {
secaoLivros.innerHTML = '';
const listaFiltro = listaDeLivros.filter(livro => {
return livro.categoria === filtro;
});
exibirOsLivrosNaTela(listaFiltro);
}
};