const ancestorSelector = 'селектор_предка';
const descendantSelector = `${ancestorSelector} селектор_потомка`;
Если цеплять обработчик клика непосредственно на потомков - от элемента, на котором висит обработчик, поднимаемся к предку и удаляем его:
document.querySelectorAll(descendantSelector).forEach(function(n) {
n.addEventListener('click', this);
}, e => {
let el = e.currentTarget;
while (!(el = el.parentNode).matches(ancestorSelector)) ;
el.replaceWith();
});
Если применять делегирование - пробуем подняться от целевого элемента к потомку, если таковой нашёлся, поднимаемся к предку и удаляем его:
document.addEventListener('click', ({ target: t }) =>
(t = t.closest(descendantSelector)) && t.closest(ancestorSelector).remove()
);