Olá pessoal, eu achei legal a correção usando o atributo tagName
, mas logo de cara eu já pensei em outra solução. Em vez de pegar a tabela inteira com o querySelector
, podemos pegar o tbody
, afinal, queremos excluir apenas os pacientes (conteúdo da tabela, que semanticamente estará no tbody
, né?).
// remove-paciente.js
var corpoTabela = document.querySelector("tbody");
corpoTabela.addEventListener("dblclick", function(event) {
var alvoClicado = event.target; // pegamos o alvo com o atributo target
var paiAlvo = alvoClicado.parentNode; // pegamos o elemento pai do alvo com o atributo parentNode
paiAlvo.remove();
});
Dessa forma não é necessário fazer uma condição (if
) verificando o atributo tagName
do alvo clicado, melhorando também a performance, pois teremos uma verificação a menos (eu sei que é apenas um if
, mas num projeto grande pode fazer a diferença ter menos condições, né?)
obs: eu sei que eu podia ter deixado apenas event.target.parentNode.remove();
dentro da função anonima. Declarei as variáveis apenas por uma questão de deixar um pouco mais claro se algum dia eu quiser rever o código.
O que vocês acham da solução? É viável ou tem algum ponto negativo?
Obrigado.