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

Porque não reconhece a template string '#som_${instrumento} ?

Olá!!

Tudo funciona até eu fazer a variável idAudio. Não consegui encontrar o que está errado. Simplesmente não funciona. Atualizo a página e não dá erro, clico em um botão e aparece o erro:

main.js:11 Uncaught DOMException: Failed to execute 'querySelector' on 'Document': '#som_${instrumento}' is not a valid selector. at tocaSom (http://127.0.0.1:5500/main.js:11:14) at tecla.onclick (http://127.0.0.1:5500/main.js:27:9)

function tocaSom (idElementoAudio){
    document.querySelector(idElementoAudio).play();
}

const ListaDeTeclas = document.querySelectorAll('.tecla');

let contador = 0;

//enquanto
while (contador < ListaDeTeclas.length) {

    const tecla = ListaDeTeclas[contador];
    const instrumento = tecla.classList[1];
    const idAudio = '#som_${instrumento}';
    console.log(idAudio);

    tecla.onclick = function () {
        tocaSom(idAudio);
    }
    contador = contador + 1;

    console.log(contador);
}
2 respostas
solução!

Olá, creio eu que você precisa substituir a String (' ') comum pela crase ( ), Ex: #som_${instrumento} ;

Nossa, nem vou falar porque não percebi a diferença de sinais rsrsrs. o_O Como são sinais "parecidos" eu troquei estes por 'estes'.

pequenos detalhes :|

OBRIGADA!