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

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

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

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

Q&A

解決済

1回答

511閲覧

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

shullunnu723

総合スコア11

JavaScript

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

0グッド

0クリップ

投稿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/ツールのバージョンなど)

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

num2 じゃないの?

javascript

1let str2 = time2.options[num].value;

投稿2019/06/13 11:16

編集2019/06/13 11:17
takasima20

総合スコア7458

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shullunnu723

2019/06/13 11:26

回答ありがとうございます! この回答を確認してから、自分でも見た結果numとは別に不備が色々あった様で、お恥ずかしい限りです... 改めてありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問