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

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

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

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

プログラミング言語

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

JavaScript

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

HTML

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

Q&A

解決済

3回答

775閲覧

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 08:58

前提・実現したいこと

プログラミング初心者かつ初質問です。お手柔らかにお願いします。
Javascriptでクイズ形式のページを作成したのですが選択肢をクリックしても先のプログラムに進みません。
ソースコードを二つ貼る方法がわからなかったのでHTMLの下にコピペさせていただきました。
よろしくお願いいたします。
以下のエラーメッセージが発生しました。

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

VM267:1 Uncaught ReferenceError: answer is not defined 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 22javascript 23 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:answer("+ 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ページで確認できます。

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

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

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

guest

回答3

0

以下の関数名が間違っています。

javascript

1function anser(num){

ではなく

javascript

1function answer(num){

にすれば動作すると思います。

投稿2020/07/08 09:05

taketoma

総合スコア374

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

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

0

ベストアンサー

関数名や変数名でundefined(未定義)のエラーが出たら、エラーメッセージにでているその名称をコピーしてファイル内を検索することです。

あと、定義したものをコピペする癖をつけたり、コード入力補完機能のあるエディタを使うことでこの手のミスを防げるようになります。

投稿2020/07/08 09:36

m.ts10806

総合スコア80850

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

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

0

VM267:1 Uncaught ReferenceError: answer is not defined

answerが定義されてない、といってます。
確かに定義されてませんね。

anserという関数はありますが

投稿2020/07/08 09:02

y_waiwai

総合スコア87774

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問