Доступа к :before / :after из JS-кода нет - ни в каком виде.
Но управлять :before / :after можно через присваивание классов:
.element:before {
display: none;
/* все прочие свойства :before */
}
.element.active:before {
display: block;
}
Добавляем элементу с class="element" класс "active" - блок :before появляется, удаляем класс "active" - блок :before пропадает.
Аналогично можно сделать набор внешних видов :before / :after в зависимости от присваиваемого класса.
Другой механизм управления, существующий в современных браузерах - CSS-переменные, значения которых меняются JS-кодом:
https://css-live.ru/articles/vzaimodejstvie-mezhdu...