element.setAttribute
element.setAttribute
でstyle属性を指定した場合、その要素に対するスタイルを指定出来ます。
疑似要素は別の要素になりますので指定出来ません。
そもそも、セレクタを指定出来ないのですが…。
CSSStyleSheet#insertRule
DOMからCSSを操作するには CSSStyleSheet#insertRule
を使用します。
しかし、この関数は「CSS(装飾)とJavaScript(振る舞い)」の役割分担を変えてしまうものなので、お勧めはしません。
http://uhyohyo.net/javascript/5_3.html
classList.add
CSS(装飾)の役割を尊重する手法として、HTML上に存在しないスタイルを宣言しておき、classトークンを付け外しする方法があります。
CSS
1.cla>.D:after {
2 width:10px;
3}
JavaScript
1document.querySelectorAll('.A.B.C').forEach(function (element) {
2 element.classList.add('D');
3});
ここで使用するのはclass属性である必要はありません。
例えば、WAI-ARIA属性やdata-*属性など、他にも候補はあります。
それが論理構造を表し、セレクタで指定可能なら何でも良いといえます。
Re: seri さん