li[data-text*="Hoge"] のノリで li:inner-text*="Hoge" と書いてみたい。
代わりに JS で cssInnerText('li', '*=', 'Hoge', 'color: red') という風に書けるようにしてみた。
cssInnerText() を呼び出したタイミングで style.cssText にスタイルを書き込むようにしている。その仕組みのため、以下のような問題・制約がある。
style.cssText に追記するやり方のため、CSS の優先度が高め。カスケードの調整が微妙かも?
:hover、:focus などの擬似クラス、::before などの擬似要素を操作したい場合に対応できない
style.cssText を使ってスタイルを書き込むのではなく、属性セレクタをでっちあげるようなやり方じゃないと無理かな:has() の Polyfill で属性セレクタを使うやり方をしているconsole.log や console.warn を表示・非表示する設定を何かしたい。表示させたいときだけ引数で渡してもらうのが良いのかなぁ?ちなみに、style.cssText は上書きされたプロパティがよしなに消えるので、呼び出しただけゴミが積み重なるような事態は起きない模様。