ElementInternals: states プロパティ

Baseline 2024
Newly available

Since May 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

statesElementInternals インターフェイスの読み取り専用プロパティで、カスタム要素の取りうる状態を表す CustomStateSet を返します。

CustomStateSet です。これは文字列の Set です。

以下の関数は CustomStateSet--checked という状態を追加・除去し、カスタムチェックボックスがチェックされたりチェックが外れたりすると true または false をコンソールに出力します。

js
set checked(flag) {
  if (flag) {
    this._internals.states.add('--checked');
  } else {
    this._internals.states.delete('--checked');
  }

  console.log(this._internals.states.has('--checked'));
}

仕様書

Specification
HTML
# custom-state-pseudo-class

ブラウザーの互換性

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
states

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support