• ベストアンサー

プログラムを短くしたい

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.」など同じ文が続く場合、 この部分を短縮、もしくは省略して記述することは出来ないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • taseki
  • ベストアンサー率66% (155/233)
回答No.2

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}; としては?

tessyu
質問者

お礼

教えて頂いたコードをそのまま使わせて頂きました。 ありがとうございます。

その他の回答 (2)

  • Nickee
  • ベストアンサー率15% (14/93)
回答No.3

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}; } でできないでしょうか? 時間があったら、こちらでも検証してみます。

参考URL:
http://www.tohoho-web.com/js/statement.htm#stWith
tessyu
質問者

お礼

VisualBasicのようにWithも使えるんですねー。 勉強になりました!

  • jch
  • ベストアンサー率38% (7/18)
回答No.1

頭のほうで var doc = document.myForm; 下からは doc.first.・・・とかdoc.second.・・・ような感じで使えます。

tessyu
質問者

お礼

ありがとうございます! 悩みが解決致しました。

関連するQ&A