2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

HTML のデータセット属性に無理やり配列を設定する方法

Posted at

結論から言うと、まず次の HTMLの data-disabled-dom="windowsVersionInput, WSL2Checkbox, windowsTerminalSoftInput, linuxDistributionInput" のように、データセット属性にカンマ区切りの文字列を設定します。

<input class="form-check-input" type="radio" name="osName" id="macos" value="MacOS" data-activate-dom="macosVersionInput" data-disabled-dom="windowsVersionInput, WSL2Checkbox, windowsTerminalSoftInput, linuxDistributionInput">

それから、.js ファイルに次のコードを追加して、data-disabled-dom 属性に設定した文字列を配列として取り出します。なお、data-disabled-dom 属性に設定した値の取り出し方は、データ属性の使用 - ウェブ開発を学ぶ | MDN を参照してください。

const disabledDomIds = document.getElementById('macos').dataset.disabledDom.replace(/\s/g, '').split(',');
console.log(disabledDomIds);
// -> ["windowsVersionInput","WSL2Checkbox","windowsTerminalSoftInput","linuxDistributionInput"]

ちなみに、replace(/\s/g, '') でスペースを取り除いていない場合、次のとおり無駄なスペースが含まれてしまいます。

// ["windowsVersionInput"," WSL2Checkbox"," windowsTerminalSoftInput"," linuxDistributionInput"]

これで data-disabled-dom 属性に設定した配列が disabledDomIds 変数に格納されたので、次のコードで順番に取り出して処理することができます。

for(let disabledDomId of disabledDomIds) {
  let disabledDom = document.getElementById(disabledDomId);
  // 何かの処理
}
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?