結論から言うと、まず次の 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);
// 何かの処理
}