Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Imprimindo com map

Olá, gostaria de entender o porque do seguinte código abaixo não imprime cada item do meu array dentro da tag tbody, quando utilizo : document.getElementsByTagName("tbody").

Obs: o código funciona normalmente com document.querySelector("tbody). Sendo assim gostaria de uma explicação mais clara a respeito desses dois seletores.

segue o código abaixo.

        let funcionarios = [
            {
                "nome": "Chiquinho 1",
                "endereco" : "Rua da esquina, 123",
                "salario" : "4500"
            },
            {
                "nome": "Chiquinho 2",
                "endereco" : "Rua da virada, 456",
                "salario" : "5000"
            },
            {
                "nome": "Chiquinho 3",
                "endereco" : "Rua da aresta, 789",
                "salario" : "6000"
            }
        ];

        let tbody = document.getElementsByName('tbody');
        let funcionariosHtml = funcionarios.map(n => 
        `
        <tr>
            <td>${n.nome}</td>
            <td>${n.salario}</td>
            <td>${n.endereco}</td>
        </tr>
        `
        );
        tbody.innerHTML = funcionariosHtml.join('');
1 resposta
solução!

Boa tarde Thiago!

Em nenhum momento do curso eu uso essa abordagem de buscar elementos. Porém, se você quiser fazer assim, fique atento para a sintaxe.

O correto document.getElementsByTagName(). Fique mais atendo ainda que o resultado é um array e não o elemento que você esta procurando.

Para completar o conhecimento, vale saber que as seguintes funções caíram em desuso e substituídas pelos moderninhos querySelector e querySelectorAll

  • document.getElementById
  • document.getElementsByClassName
  • document.getElementsByTagName

Os dois últimos não são versáteis, pois não aceitam receber seletores CSS hierárquicos e mais avançados.

Sucesso e bom estudo meu aluno.