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

Função .parent() para navegar pela árvore de elementos do HTM

Estou com o seguinte código (modificado), referente ao curso de JQuery, e ao tentar utilizar função parent passando um class (parent(".resultado")) ou elemento (parent("tr")) a função não retornou a tr "pai de todos" os elementos que contém o botão que foi clicado.

// Funciona $(this).parent().parent().remove();

// Não funciona $(this).parent(".resultado").remove(); $(this).parent("tr").remove();

function onBtnRemoverResultadoClick(e) {
    e.preventDefault();
    // Evento é chamado com sucesso.

    // Funciona
    $(this).parent().parent().remove();

    // Não funciona
    // cursos.alura.com.br/course/jquery-a-biblioteca-do-mercado/task/21106
    // console.log( $(this).parent(".resultado"));
    // $(this).parent(".resultado").remove();
    // $(this).parent("tr").remove();
}

function criarTrResultado(usuario, quantidadePalavras) {
    // Cria os elementos
    var trResultado = $("<tr>").addClass("resultado");
    var tdUsuario = $("<td>").text(usuario);
    var tdQuantidadePalavras = $("<td>").text(quantidadePalavras);
    var tdBtnRemoverResultado = $("<td>");
    var link = $("<a>").addClass("remove-resultado").attr("href","#");
    var icone = $("<i>").addClass("small").addClass("material-icons").text("delete");

    // monta a árvore html
    link.append(icone);
    tdBtnRemoverResultado.append(link);
    trResultado.append(tdUsuario);
    trResultado.append(tdQuantidadePalavras);
    trResultado.append(tdBtnRemoverResultado);

    // assina evento de click no botão/link
    $(link).click(onBtnRemoverResultadoClick);
    return trResultado;
}
1 resposta
solução!

Olá Mário, a função parent() verifica somente um nível acima da sua arvore dom, nesse caso experimente usar a função parents(), ela verifica todos os níveis acima da sua arvore. https://api.jquery.com/parents/