1
resposta

Erro na função javascript

A sintaxe utilizada no video é a seguinte:

<script>
        function toggleInput(serieId) {
            document.getElementById('input-nome-serie-${serieId}').removeAttribute('hidden');
            document.getElementById('nome-serie-${serieId}').hidden = true;
        }
    </script>

Estava sempre tendo este problema

Uncaught TypeError: Cannot read property 'removeAttribute' of null
    at toggleInput (series:110)
    at HTMLButtonElement.onclick (series:37)

Resolvi então alterar a sintaxe para a seguinte:

<script>
        function toggleInput(serieId) {
            document.getElementById("input-nome-serie-" + serieId).removeAttribute('hidden');
            document.getElementById("nome-serie-" + serieId).hidden = true;
        }
    </script>

Tudo resolvido. Porém a minha dúvida é, porque isso acontece?

1 resposta

Olá Raphael,

Para juntar variáveis em uma string no javascript você pode usar o + como no seu segundo exemplo, ou usar o que é chamado de template strings, que é parecido como o que você fez no início, mas utilizando o acento de crase (`) no lugar das aspas:

// Template string
`input-nome-serie-${serieId}`