О каких элементах идёт речь, как получать из них классы, и как переключать классы у их предка:
const containerSelector = '.selectboxss';
const itemClass = 'selectoption';
const itemSelector = `${containerSelector} .${itemClass}`;
const getClasses = el => Array.prototype.filter.call(el.classList, n => n !== itemClass);
//const getClass = el => RegExp(`${itemClass}-\\d+`).exec(el.className)[0];
function updateClasses(item) {
const container = item.closest(containerSelector);
const items = container.querySelectorAll(itemSelector);
const { classList: cl } = container;
cl.remove(...Array.prototype.flatMap.call(items, getClasses));
cl.add(...getClasses(item));
//cl.remove(...Array.from(items, getClass));
//cl.add(getClass(item));
}
Назначаем обработчик клика каждому элементу индивидуально:
document.querySelectorAll(itemSelector).forEach(function(n) {
n.addEventListener('click', this);
}, e => updateClasses(e.currentTarget));
Или, можем применить делегирование:
document.addEventListener('click', ({ target: t }) =>
(t = t.closest(itemSelector)) && updateClasses(t)
);