1. ホーム
  2. javascript

[解決済み] 与えられた入力に関連する html ラベルを検索する

2022-07-27 12:13:59

質問

htmlのフォームがあるとします。 各入力/選択/テキストエリアには、対応する <label>for 属性に、その仲間の id を設定します。この場合、各入力は1つのラベルしか持たないことが分かっています。

javascriptで入力要素がある場合、例えばonkeyupイベントを通して、関連するラベルを見つける最良の方法は何でしょうか?

どのように解決するのですか?

まず、ラベルのページをスキャンし、実際のフォーム要素からラベルへの参照を割り当てます。

var labels = document.getElementsByTagName('LABEL');
for (var i = 0; i < labels.length; i++) {
    if (labels[i].htmlFor != '') {
         var elem = document.getElementById(labels[i].htmlFor);
         if (elem)
            elem.label = labels[i];         
    }
}

では、単純に

document.getElementById('MyFormElem').label.innerHTML = 'Look ma this works!';

ルックアップ配列は不要 :)