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

Duvida em um artigo Front-end.

No artigo: "Capturando valor do input: introdução a seletores.", surgiu uma dúvida. Desenvolvi a tabela HTML conforme o exemplo sugerido:

<body>
    <main> 
        <h1>Desafio da tabela</h1>
        <section class="container">
          <h2>Alunos</h2>
           <table>
               <thead>
                   <tr>
                       <th>Nome</th>
                       <th>Endereço</th>
                       <th>Telefone</th>
                   </tr>
               </thead>
               <tbody id="tabela-alunos">
                   <tr id="Paulo">
                       <td class="info-nome">Paulo</td>
                       <td class="info-endereco">Rua Sampaio Moreira</td>
                       <td class="info-telefone">11-9988-77766</td>
                   </tr>
               </tbody>
               <tbody id="tabela-alunos">
                   <tr id="Carlos">
                       <td class="info-nome">Carlos</td>
                       <td class="info-endereco">Rua Sampaio Moreira</td>
                       <td class="info-telefone">119988-77766</td>
                   </tr>
               </tbody>
               <tbody id="tabela-alunos">
                   <tr id="Bruno">
                       <td class="info-nome">Bruno</td>
                       <td class="info-endereco">Rua Sampaio Moreira</td>
                       <td class="info-telefone">119-98877766</td>
                   </tr>
               </tbody>
               <tbody id="tabela-alunos">
                   <tr id="Saulo">
                       <td class="info-nome">Saulo</td>
                       <td class="info-endereco">Rua Sampaio Moreira</td>
                       <td class="info-telefone">11-99887-7766</td>
                   </tr>
               </tbody>
           </table>
        </section>
    </main>
    <script type="text/javascript" src="desafioMain.js"></script>
</body>

Observe que no tr com id #Paulo e no tr com id #Saulo, o telefone contem dois traços (11-99887-7766). A proposta do artigo é de retirar os traços do telefone modificando o DOM com javaScript. Desenvolvi o código seguindo a lógica de loop (for). Segue o meu código javaScript:

    const alunos = document.querySelectorAll(".info-telefone");

    for(let indice = 0; indice < alunos.length; indice++) {
    const novoTelefone = alunos[indice].textContent.replace('-','');
    alunos[indice].textContent = novoTelefone;

    console.log(novoTelefone);
}

O resultado foi parcialmente satisfatório, pois nos dois exemplos que citei, que continham dois traços, apenas um foi retirado. Alguém poderia me ajudar?

2 respostas

Oi, bom dia.

Acredito que se você apenas trocar para o método replaceAll já funcione. Assim ele vai trocar todas recorrências que achar com a condição passada.

Um exemplo para manipular um array em poucas linhas:

const alunos = [
  {
    nome: "Bernardo",
    numero: "11-99887-7766"
  },
  {
    nome: "Bruno",
    numero: "11-99887-7766"
  },
  {
    nome: "Rafael",
    numero: "11-99887-7766"
  }
];

alunos.forEach((aluno) => {
  aluno.numero = aluno.numero.replaceAll("-", "");
});

console.log(alunos);  // Vai imprimir o objeto alunos, e todos números vão estar sem os traços.
solução!

Sim. Correto! Substituí o replace para o replaceAll e funcionou.

Mas no seu exemplo, a declaração da variável alunos ficaria impossível de usar, visando uma planilha de 2.000 alunos. Por isso optei o seletor de classes e a lógica de loop.

Mesmo assim, muito obrigado por sua resposta, me ajudou bastante.