質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

解決済

JavaScriptの複数のoption[num].valueの取得について

shullunnu723
shullunnu723

総合スコア0

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

1回答

0評価

0クリップ

2閲覧

投稿2019/06/13 11:00

前提・実現したいこと

javasctiptにて、単位変換表のようなものを作っているのですが、selectタグの中の選択肢option[num].valueで取得し、秒→分/時間/日という条件分岐にて計算を行うというものなのですが、秒→各単位がうまくいったので、また別に分→秒/時間/日の同じようなコードを下に連ねて書いた場合、[num]が被っているのか、うまくいきません。原因、及び対処法など教えていただければ嬉しいです。

発生している問題・エラーメッセージ

test2.html:73 Uncaught ReferenceError: num is not defined

該当のソースコード

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <h2>色々な単位変換</h2> <h1>時間</h1> <h1>秒</h1> <input type="text1" name="" id="text1"> <p>結果: <span id="span1"></span><span id="span2"></span></p> <form name="form1"> <select name="time"> <option value="min">分</option> <option value="hour">時</option> <option value="day">日</option> </select> </form> <input type="button" value="ボタン1" onclick="clickBtn1()"/> <script> function clickBtn1(){ let time = document.form1.time; let num = time.selectedIndex; let str = time.options[num].value; if (str == "min") { let text1 = document.getElementById("text1").value; let min1 = parseInt(60); let result = 1 / min1 * text1; document.getElementById("span1").textContent = result;  document.getElementById("span2").textContent = "分" }else if (str == "hour") { let text1 = document.getElementById("text1").value; let hour1 = parseInt(3600); let result2 = 1 / hour1 * text1; document.getElementById("span1").textContent = result2; document.getElementById("span2").textContent = "時間" }else if (str == "day") { let text1 = document.getElementById("text1").value; let hour1 = parseInt(86400); let result3 = 1 / hour1 * text1; document.getElementById("span1").textContent = result3; document.getElementById("span2").textContent = "日" } } </script> <!-- ここから分 --> <h1>分</h1> <input type="text2" name="" id="text2"> <p>結果: <span id="span3"></span><span id="span4"></span></p> <form name="form2"> <select name="time2"> <option value="sec2">秒</option> <option value="hour2">時</option> <option value="day2">日</option> </select> </form> <input type="button" value="ボタン2" onclick="clickBtn2()"/> <script> function clickBtn2(){ let time2 = document.form2.time2; let num2 = time2.selectedIndex; let str2 = time2.options[num].value; if (str == "sec2") { let text2 = document.getElementById("text2").value; let sec2 = parseInt(60); let result4 = sec2 * text2; document.getElementById("span3").textContent = result4;  document.getElementById("span4").textContent = "秒"; }else if (str == "hour2") { let text1 = document.getElementById("text1").value; let hour1 = parseInt(60); let result5 = 1 / hour1 * text1; document.getElementById("span3").textContent = result5; document.getElementById("span4").textContent = "時間" }else if (str == "day2") { let text1 = document.getElementById("text1").value; let hour1 = parseInt(1440); let result6 = 1 / hour1 * text1; document.getElementById("span3").textContent = result6; document.getElementById("span4").textContent = "日" } } </script> </body> </html>

試したこと

二つ目の[num]の中身を[num2]に変更しましたが、変化はありませんでした。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。