関連する HTML のスニペットを表示すると、非常に役立ちます。
コードでelems[i]
は、select 要素のようで、 studentidelems[i].studentid
という名前のプロパティを読み取ろうとしています。関連する HTML は次のようになります。
<select studentid="..." ...>
Studentidと呼ばれる標準の HTML select 要素属性はありません。したがって、その属性が select 要素に追加されたとしても、Firefox (およびおそらく他のブラウザー) でプロパティとして使用できません。したがって、テストは次の時点で失敗します。
elems[i].studentid
Firefox は を返しますがundefined
、これは false と評価されます。ただし、IE は非標準の属性をプロパティとして追加するため、属性が設定されている場合、テストは IE でパスする可能性があります。
非標準の属性にアクセスするには、ブラウザ間の互換性のためにgetAttributeメソッドを使用する必要があるため、テストは次のようになります。
elems[i].hasAttribute('studentid') && elems[i].getAttribute('studentid') == studid ...
テストには値がないように見えるhasAttribute
ため、おそらく削除できます。複数回使用されるためelems[i]
、結果も保存します。
var elem = elems[i];
if (elem.getAttribute('studentid') == studid && elem.selectedIndex == 0) {
elem.selectedIndex = 1;
}