О каком data-атрибуте идёт речь:
const key = 'id';
const attr = `data-${key}`;
Как из элемента достать значение data-атрибута:
const getVal = el => $(el).data(key);
// или
const getVal = el => $(el).attr(attr);
// или
const getVal = el => el.dataset[key];
// или
const getVal = el => el.getAttribute(attr);
// или
const getVal = el => el.attributes[attr].value;
По кому кликаем, кому и какой класс надо переключать:
const buttonSelector = '.open-category';
const contentSelector = button => `.d-none[${attr}="${getVal(button)}"]`;
const activeClass = 'active';
Как переключить класс:
const toggle = button => $(contentSelector(button)).toggleClass(activeClass);
// или
const toggle = button => document
.querySelector(contentSelector(button))
.classList
.toggle(activeClass);
Клики можно слушать непосредственно на кнопках:
$(buttonSelector).click(function() {
toggle(this);
});
// или
document.querySelectorAll(buttonSelector).forEach(function(n) {
n.addEventListener('click', this);
}, e => toggle(e.currentTarget));
Или на ком-нибудь из их общих предков:
$(document).on('click', buttonSelector, e => toggle(e.currentTarget));
// или
document.addEventListener('click', ({ target: t }) =>
(t = t.closest(buttonSelector)) && toggle(t)
);