Где элементы находятся и о каком data-атрибуте идёт речь:
const container = document.body;
const key = 'number';
const attr = `data-${key}`;
const attrSelector = `[${attr}]`;
Вариант раз - обработчик клика вешаем на общего предка элементов; по клику ищем все элементы со значением атрибута как у кликнутого и удаляем их:
container.addEventListener('click', function(e) {
const value = e.target.closest(attrSelector)?.dataset[key];
if (value) {
this.querySelectorAll(`[${attr}="${value}"]`).forEach(n => n.remove());
}
});
Вариант два - заранее получаем массив всех элементов с атрибутом; обработчик клика цепляем непосредственно на элементы; при клике бежим по массиву, у кого значение атрибута совпало с кликнутым, тех удаляем (как со страницы, так и из массива):
const elems = [...container.querySelectorAll(attrSelector)];
const onClick = ({ currentTarget: { attributes: { [attr]: { value } } } }) =>
elems.length -= elems.reduce((acc, n, i, a) => (
a[i - acc] = n,
acc + (n.getAttribute(attr) === value && !n.replaceWith())
), 0);
elems.forEach(n => n.addEventListener('click', onClick));