Meu botao de remoção não remove o usuario padrão, somente remove os usuarios que são adicionados depois.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Meu botao de remoção não remove o usuario padrão, somente remove os usuarios que são adicionados depois.
Oi Gustavo, tudo bom?
Muito provavelmente isso está relacionado a sua seleção. Compartilha seu código com a gente? Assim fica mais fácil encontrar possiveis problemas.
insira seu código aquifunction inserePlacar(){
//buscando uma tbody que esta dentro de .placar, ou seja, buscar nos filhos através da função .find()
var corpoTabela = $(".placar").find("tbody");
var usuario = "Douglas";
var numPalavras = $("#contador-palavras").text();
var linha = novaLinha(usuario, numPalavras);
linha.find(".botao-remover").click(removeLinha);
//Anexar HTML como um último filho, com .append()
//Anexar HTML como um primeiro filho, com .prepend()
corpoTabela.prepend(linha);
}
function novaLinha(usuario, palavras){
var linha = $("<tr>");
var colunaUsuario = $("<td>").text(usuario);
var colunaPalavras = $("<td>").text(palavras);
var colunaRemover = $("<td>");
var link = $("<a>").addClass("botao-remover").attr("href","#");
var icone = $("<i>").addClass("small").addClass("material-icons").text("delete");
// Icone dentro do <a>
link.append(icone);
// <a> dentro do <td>
colunaRemover.append(link);
// Os três <td> dentro do <tr>
linha.append(colunaUsuario);
linha.append(colunaPalavras);
linha.append(colunaRemover);
return linha;
}
function removeLinha(event){
event.preventDefault();
$(this).parent().parent().remove();
}
Estranho mesmo, o código parece funcionar bem pros adicionados mesmo. Como está montado o HTML do seu usuário padrão? Segue a mesma estrutura do link com a classe botao-remover?
Uma abordagem pra evitar esse tipo de problema, é não contar os parents que a gente vai procurar. As vezes ter uma div a mais já acaba com o algoritmo. No seu caso, pelo o que eu entendi, você quer remover a td que é pai da classe bota-remover, certo? Pra nao ter que contar o parent, você pode chamar a função parents passando o seletor. Assim, o primeiro parent que ele encontrar que bata com o seletor será retornado. Algo como:
function removeLinha(event){
event.preventDefault();
$(this).parents("tr").remove();
}