- ベストアンサー
プログラムを短くしたい
if ((document.myForm.first.selectedIndex==0) && (document.myForm.second.selectedIndex==6)) {n += 11}; else if ((document.myForm.first.selectedIndex==1) && (document.myForm.second.selectedIndex==0)) {n += 12}; else if ((document.myForm.first.selectedIndex==1) && (document.myForm.second.selectedIndex==2)) {n += 18}; 上記のようなコードで 「document.myForm.first.」など同じ文が続く場合、 この部分を短縮、もしくは省略して記述することは出来ないでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
jchさんと主旨はほとんど同じになってしまいますが、 良く見ると評価対象の値が2つだけなので、 var Value1 = document.myForm.first.selectedIndex; var Value2 = document.myForm.second.selectedIndex; if (Value1==0 && Value2==6) {n += 11}; else if (Value1==1 && Value2==0) {n += 12}; else if (Value1==1 && Value2==2) {n += 18}; としては?
その他の回答 (2)
- Nickee
- ベストアンサー率15% (14/93)
withが使えるのではないでしょうか? 検証してはいませんが、 with(document.myForm.first){ if ((selectedIndex==0) && (selectedIndex==6)) {n += 11}; else if ((selectedIndex==1) && (selectedIndex==0)) {n += 12}; else if ((selectedIndex==1) && (selectedIndex==2)) {n += 18}; } でできないでしょうか? 時間があったら、こちらでも検証してみます。
お礼
VisualBasicのようにWithも使えるんですねー。 勉強になりました!
- jch
- ベストアンサー率38% (7/18)
頭のほうで var doc = document.myForm; 下からは doc.first.・・・とかdoc.second.・・・ような感じで使えます。
お礼
ありがとうございます! 悩みが解決致しました。
お礼
教えて頂いたコードをそのまま使わせて頂きました。 ありがとうございます。