Olá Wagner!
Esse erro SyntaxError: Identifier 'listaDeTeclas' has already been declared
ocorre quando você tenta declarar uma variável com o mesmo nome mais de uma vez no mesmo escopo. No seu caso, parece que o problema pode estar fora do trecho de código que você compartilhou, talvez em alguma parte anterior do seu script.
Teste o seguinte, código:
function tocaSom(idElementoAudio) {
const elemento = document.querySelector(idElementoAudio);
if (elemento && elemento.play) {
elemento.play();
} else {
console.error('Elemento ou função play não encontrado!');
}
}
const listaDeTeclas = document.querySelectorAll('.tecla');
for (let contador = 0; contador < listaDeTeclas.length; contador++) {
const tecla = listaDeTeclas[contador];
const instrumento = tecla.classList[1];
const idAudio = `#som_${instrumento}`;
tecla.onclick = function () {
tocaSom(idAudio);
}
}
Em caso de persistência do erro, peço que você compartilhe o link do seu projeto no GitHub ou uma pasta com todos os arquivos que você utilizou no através do Google Drive. Dessa forma, conseguirei realizar os testes necessários e te ajudar de forma mais assertiva.
Lembre-se que, se enviar os arquivos por meio do Google Drive, é necessário conceder permissão para que eu possa ter acesso.
Reforço que em casos de dúvidas, conte sempre com o fórum da comunidade Alura! Bons estudos!
Sucesso ✨
Um grande abraço e até mais!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!