3
respostas

Não remove o usuário padrão

function inserePlacar(){
    var tabela = $(".placar").find("tbody");
    var usuario = prompt("Qual é seu nome?");
    var palavras = $(".contador-palavras").text();

    var linha = novaLinha(usuario, palavras);

    linha.find(".botao-remover").click(removeLinha);

    tabela.append(linha);
}


function novaLinha(usuario, palavras){
    var linha = $("<tr>");
    var colunaUsuario = $("<td>").text(usuario);
    var colunaPalavras = $("<td>").text(palavras);

    var colunaRemover = $("<td>");
    var botao = $("<button>").addClass("botao-remover");
    var icones = $("<i>").addClass("small").addClass("material-icons").text("delete");

    botao.append(icones);
    colunaRemover.append(botao);

    linha.append(colunaUsuario);
    linha.append(colunaPalavras);
    linha.append(colunaRemover);

    return linha;
}

function removeLinha(event){
    event.preventDefault();    
    $(this).parent().parent().remove();    

}
<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <title>Alura Typer</title>
    <link rel="stylesheet" href="css/libs/materialize.min.css">
    <link rel="stylesheet" href="css/libs/google-fonts.css">
    <link rel="stylesheet" href="css/estilos.css">
</head>
<body>
    <div class="container">
         <h1 class="center">Alura Typer</h1>
         <p class="frase">Esta frase possui seis belas palavras</p>

         <ul class="informacoes center">
             <li>
                 <i class="small material-icons icones">description</i>
                 <span id="tamanho-frase">6</span> palavras
             </li>
             <li>
                 <i class="small material-icons icones">query_builder</i>
                 <span class="tempo-digitacao">4</span> segundos
             </li>
         </ul>

        <textarea class="campo-digitacao" rows="10" cols="40" placeholder="Digite seu texto aqui"></textarea>

        <button class="btn-floating btn-large waves-effect waves-light red botao-reiniciar">
            <i class="material-icons">restore</i>
        </button>

        <ul>
            <li><span class="contador-caracteres">0</span> caracteres</li>    
            <li><span class="contador-palavras">0</span> palavras</li>    
        </ul>
    </div>
    <section class="placar">
        <h3 class="center">Placar</h3>
        <table class="centered bordered">
            <thead>
                <tr>
                    <th>Nome:</th>
                    <th>Nº de palavras:</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>Padrão</td>
                    <td>10</td>
                    <td>
                        <button class="botao-remover"> <i class="small material-icons">delete</i></button>
                    </td>
                </tr>
            </tbody>
        </table>
    </section>

     <script src="js/jquery.js"></script>
     <script src="js/main.js"></script>
     <script src="js/placar.js"></script>    
</body>
</html>

O programa está funcionando normalmente, exceto por não remover o usuário que já vem por padrão. Pensei que após adicionar o primeiro jogador ele removeria normalmente mas não acontece. Poderiam me ajudar por favor?

3 respostas

Fala ai Vinicius, tudo bem? Acho que você pode tentar usar a função empty, ela vai limpar algum elemento, no seu caso seria o tbody:

$(".placar").find("tbody").empty();

Você pode criar uma função:

function limparTabela() {
    $(".placar").find("tbody").empty();
}

E chamá-la assim que carregar a página.

Obs: Ela sempre vai limpar a tabela ao carregar a página.

Espero ter ajudado.

Desculpa pela demora!

Ainda não chega no resultado, pois queria que removesse somente ao clicar no botão, como na aula. :(

Nesse caso você pode chamar a função quando clicar no botão, chame ela no começo da função e depois segue o código que já estava.

Assim ela vai remover e depois adicionar a nova tabela.

Espero ter ajudado.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software