\r\n \r\n\r\n\r\n\r\njavascript\r\n\r\n//問題と解答\r\nqa = new Array();\r\nqa[0]=[\"犬を英語で?\",\"dog\",\"cat\",\"dragon\",1];\r\nqa[1]=[\"catを日本語で?\",\"犬\",\"猫\",\"竜\",2];\r\nqa[2]=[\"今何問目?\",\"1\",\"2\",\"3\",3];\r\n\r\n//初期設定\r\nq_sel = 3;//選択肢の番号\r\nsetReady();\r\n//初期設定\r\nfunction setReady(){\r\n count = 0;//問題番号\r\n ansers = new Array();//解答記録\r\n\r\n//最初の問題\r\nquiz();\r\n}\r\n//問題表示\r\nfunction quiz(){\r\n var s,n;\r\n //問題\r\n document.getElementById(\"text_q\").innerHTML = (count + 1) + \"問目:\" + qa[count][0];\r\n //選択肢\r\n s = \"\";\r\n for (n = 1;n\" + n + \":\" + qa[count][n] + \"]\";\r\n }\r\n document.getElementById(\"text_s\").innerHTML = s;\r\n}\r\n\r\n//解答表示\r\nfunction anser(num){\r\n var s;\r\n s=(count + 1) + \"問目:\";\r\n //答え合わせ\r\n if (num == qa[count][q_sel + 1]) {\r\n ansers[count] = \"〇\";//正解\r\n }else {\r\n ansers[count] = \"×\";//不正解\r\n }\r\n s += ansers[count] + qa[count][num];\r\n document.getElementById(\"text_a\").innerHTML = s;\r\n\r\n //次の問題を表示\r\n count++;\r\n if (count < qa.length) {\r\n quiz();\r\n }else {\r\n //終了\r\n s = \"\";\r\n //一行目\r\n s +=\"\";\r\n for (n= 0;n\" + (n + 1) + \"\";\r\n }\r\n s += \"\"\r\n //二行目\r\n s +=\"\";\r\n for (n= 0;n\" + ansers[n] + \"\";\r\n }\r\n s += \"\"\r\n s += \"
成績発表
問題
成績
\"\r\n document.getElementById(\"text_q\").innerHTML =s;\r\n //次の選択肢\r\n s =\"[前のページに戻る]\";\r\n\r\n s +=\"[同じ問題を最初から]\";\r\n }\r\n}\r\n\r\n```\r\n\r\n### 試したこと\r\n\r\nここに問題に対して試したことを記載してください。\r\n\r\n### 補足情報(FW/ツールのバージョンなど)\r\n\r\nここにより詳細な情報を記載してください。","answerCount":1,"upvoteCount":0,"datePublished":"2020-07-08T09:37:35.960Z","dateModified":"2022-01-12T10:55:45.698Z","suggestedAnswer":[{"@type":"Answer","text":">「前のページに戻る」と「同じ問題を最初から」がうまく表示されません。\r\n>表示するためにはどうしたらいいか教えてください。\r\n\r\nこういうことですか?\r\n\r\n```js\r\n //次の選択肢\r\n s +=\"[前のページに戻る]\";\r\n\r\n s +=\"[同じ問題を最初から]\";\r\n\r\n document.getElementById(\"text_q\").innerHTML =s;\r\n```","dateModified":"2020-07-09T01:26:50.179Z","datePublished":"2020-07-09T01:26:06.723Z","upvoteCount":0,"url":"https://teratail.com/questions/276081#reply-393654","comment":[]}],"breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"https://teratail.com","name":"トップ"}},{"@type":"ListItem","position":2,"item":{"@id":"https://teratail.com/tags/HTML5","name":"HTML5に関する質問"}},{"@type":"ListItem","position":3,"item":{"@id":"https://teratail.com/questions/276081","name":"javascriptのエラーについて。"}}]}}}
質問するログイン新規登録

Q&A

1回答

487閲覧

javascriptのエラーについて。

reirei00

総合スコア1

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

JavaScript

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

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2020/07/08 09:37

0

0

前提・実現したいこと

プログラミング初心者です。お手柔らかにお願いします。
Javascriptで簡単な三択クイズを作成しているのですが三問目解答し、成績発表に行くのですが選択の欄にプログラミングの最後のほうの「前のページに戻る」と「同じ問題を最初から」がうまく表示されません。
表示するためにはどうしたらいいか教えてください。
ソースコードを二つ貼る方法がわからなかったのでHTMLの下にjavascriptのソースコードをコピペしました。
宜しくお願い致します。
以下のエラーメッセージが発生しました。

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

main2.js:36 Uncaught TypeError: Cannot read property '4' of undefined at anser (main2.js:36) at <anonymous>:1:1

該当のソースコード

html

1<!DOCTYPE html> 2<html lang="ja"> 3 <head> 4 <meta charset="utf-8"> 5 <title>クイズ</title> 6 </head> 7 <body> 8 <h1>クイズ</h1> 9 <hr> 10 <h2>問題</h2> 11 <div id="text_q"></div> 12 <h2>選択</h2> 13 <div id="text_s"></div> 14 <h2>解答</h2> 15 <div id="text_a"></div> 16<script type="text/javascript" src="js/main2.js"> 17 18</script> 19 </body> 20</html> 21 22 23javascript 24 25//問題と解答 26qa = new Array(); 27qa[0]=["犬を英語で?","dog","cat","dragon",1]; 28qa[1]=["catを日本語で?","犬","猫","竜",2]; 29qa[2]=["今何問目?","1","2","3",3]; 30 31//初期設定 32q_sel = 3;//選択肢の番号 33setReady(); 34//初期設定 35function setReady(){ 36 count = 0;//問題番号 37 ansers = new Array();//解答記録 38 39//最初の問題 40quiz(); 41} 42//問題表示 43function quiz(){ 44 var s,n; 45 //問題 46 document.getElementById("text_q").innerHTML = (count + 1) + "問目:" + qa[count][0]; 47 //選択肢 48 s = ""; 49 for (n = 1;n<q_sel;n++) { 50 s += "[<a href='javascript:anser("+ n +")'>" + n + ":" + qa[count][n] + "</a>]"; 51 } 52 document.getElementById("text_s").innerHTML = s; 53} 54 55//解答表示 56function anser(num){ 57 var s; 58 s=(count + 1) + "問目:"; 59 //答え合わせ 60 if (num == qa[count][q_sel + 1]) { 61 ansers[count] = "〇";//正解 62 }else { 63 ansers[count] = "×";//不正解 64 } 65 s += ansers[count] + qa[count][num]; 66 document.getElementById("text_a").innerHTML = s; 67 68 //次の問題を表示 69 count++; 70 if (count < qa.length) { 71 quiz(); 72 }else { 73 //終了 74 s = "<table border='2'><caption>成績発表</caption>"; 75 //一行目 76 s +="<tr><th>問題</th>"; 77 for (n= 0;n<qa.length; n++) { 78 s +="<th>" + (n + 1) + "</th>"; 79 } 80 s += "</tr>" 81 //二行目 82 s +="<tr><th>成績</th>"; 83 for (n= 0;n<qa.length; n++) { 84 s +="<td>" + ansers[n] + "</td>"; 85 } 86 s += "</tr>" 87 s += "</table>" 88 document.getElementById("text_q").innerHTML =s; 89 //次の選択肢 90 s ="[<a href='javascript:history.back()'>前のページに戻る</a>]"; 91 92 s +="[<a href='javascript:setReady()'>同じ問題を最初から</a>]"; 93 } 94} 95

試したこと

ここに問題に対して試したことを記載してください。

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

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

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

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

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

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

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

m.ts10806

2020/07/08 09:51 編集

違う質問ならタイトル変えてください。 また、ファイルが違うのでしたらコードは別のブロックにしてください。 あと、エラーを読んでデバッグしてください。 前回の質問についたアドバイスがほとんど活かされないまま丸投げしています。
guest

回答1

0

「前のページに戻る」と「同じ問題を最初から」がうまく表示されません。
表示するためにはどうしたらいいか教えてください。

こういうことですか?

js

1 //次の選択肢 2 s +="[<a href='javascript:history.back()'>前のページに戻る</a>]"; 3 4 s +="[<a href='javascript:setReady()'>同じ問題を最初から</a>]"; 5 6 document.getElementById("text_q").innerHTML =s;

投稿2020/07/09 01:26

編集2020/07/09 01:26
Lhankor_Mhy

総合スコア37634

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

アカウントをお持ちの方は

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

ただいまの回答率
85.29%

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

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

質問する

関連した質問