1
resposta

Som não reproduz

Segue meu código:

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

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

let contador = 0;

while (contador = listaDeTeclas.length) { //o auxiliar leigth éutilizado para compreender toda a dimensão de uma lista, independente de sabermos o tamanho dela

const tecla = listaDeTeclas[contador];
const instrumento = tecla.classList[1];
//template string
const idAudio = `#som_${instrumento}`;

console.log(idAudio);

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

contador = contador + 1;

console.log(contador);

}

1 resposta

Você usou o operador errado no while. Você está utilizando o operador de atribuição (=) mas o correto seria utilizar o operador de menor (<), por isso o erro:

*/
function tocaSom(idElementoAudio) {

    document.querySelector(idElementoAudio).play();
}

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

let contador = 0;

while (contador < listaDeTeclas.length) {
        //observe o operador acima

    const tecla = listaDeTeclas[contador];
    const instrumento = tecla.classList[1];
    const idAudio = `#som_${instrumento}`;


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

    contador = contador + 1;
}