javascript(html・css)で質問です。動画を見て、クイズ形式で正解すれば、 alertが出るというものを
作りたいんですが、何か画面を確認しながら、やっているのですが、全くの超初心者という
事もあって、エーラーが出て、調べても、どこが間違っているのか、まったく分かりません。
大変お手数ですが、どなたか、ご存じの方、教えて戴けないでしょうか?
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
body,html,div,h1,h2,ul,li {
margin: 0;
padding:0;
}
h1 {
background-color:rgb(214,255,255);
color: rgb(121,149,240);
text-align: center;
margin-bottom: 20px;
}
h2 {
text-align: center;
font-size: 22px;
font-weight: normal;
}
ul {
text-align: center;
margin: 20px auto;
list-style: none;
}
.btn-box {
text-align: center;
}
.btn-box button {
background-color: rgb(196,196,214);
color: #fff;
border: none;
padding: 10px 20px;
cursor: pointer;
}
.btn-box button:hover {
opacity: .7;
}
</style>
</head>
<body>
<h1>クイズ</h1>
<h2 id="question">ここに問題表示</h2>
<ul>
<li id="ans1">選択肢1</li>
<li id="ans2">選択肢2</li>
<li id="ans3">選択肢3</li>
</ul>
<div class="btn-box">
<button type="button" id="answer1" onClick="answerCheck(1)">回答1</button>
<button type="button" id="answer2" onClick="answerCheck(2)">回答2</button>
<button type="button" id="answer3" onClick="answerCheck(3)">回答3</button>
</div>
<script>
let question = {
[
"山形県のお米といえば?",
"1.ひとめぼれ",
"2.ほえぬき",
"3,こしひかり",
"3"
],
[
"山形県の果物といえば?",
"1.さくらんぼ",
"2.マンゴー",
"3,みかん",
"2"
],
[
"山形県の県庁所在地どこ?",
"1.天草市",
"2.東根市",
"3,山形市",
"3"
]
};
console.log(question[0][0]);
let quiz = document.getElementById('question');
let ans1 = document.getElementById('ans1');
let ans2 = document.getElementById('ans2');
let ans3 = document.getElementById('ans3');
let correct = 0;
let quizCnt = 0;
function quizSet() {
quiz.textContent = question(quizCnt)[0];
ans1.textContent = question(quizCnt)[1];
ans2.textContent = question(quizCnt)[2];
ans3.textContent = question(quizCnt)[3];
}
quizSet();
function answerCheck(ans) {
if(ans == question[quizCnt][4]) {
alert("正解!");
correct++;
} else {
alert("不正解、、、!");
}
quizCnt++;
if(quizCnt == question.length) {
quiz.textContent = `正解数は${correct}でした!`;
ans1.textContent ="";
ans2.textContent ="";
ans3.textContent ="";
} else {
quizSet();
}
}
</script>
</body>
</html>
<button type="button" id="answer1" onClick="answerCheck(1)">回答1</button> ←ここでエラー
No.1ベストアンサー
- 回答日時:
zzhikkkk さん
・・・・・エーラーが出て、調べても、どこが間違っているのか、まったく分かりません。・・・・・・・・・
参考↓
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
body,html,div,h1,h2,ul,li {
margin: 0;
padding:0;
}
h1 {
background-color:rgb(214,255,255);
color: rgb(121,149,240);
text-align: center;
margin-bottom: 20px;
}
h2 {
text-align: center;
font-size: 22px;
font-weight: normal;
}
ul {
text-align: center;
margin: 20px auto;
list-style: none;
}
.btn-box {
text-align: center;
}
.btn-box button {
background-color: rgb(196,196,214);
color: #fff;
border: none;
padding: 10px 20px;
cursor: pointer;
}
.btn-box button:hover {
opacity: .7;
}
</style>
</head>
<body>
<h1>クイズ</h1>
<h2 id="question">ここに問題表示</h2>
<ul>
<li id="ans1">選択肢1</li>
<li id="ans2">選択肢2</li>
<li id="ans3">選択肢3</li>
</ul>
<div class="btn-box">
<button type="button" id="answer1" onClick="answerCheck(1)">回答1</button>
<button type="button" id="answer2" onClick="answerCheck(2)">回答2</button>
<button type="button" id="answer3" onClick="answerCheck(3)">回答3</button>
</div>
<script>
/* ここが間違い
let question = {
[
"山形県のお米といえば?",
"1.ひとめぼれ",
"2.ほえぬき",
"3,こしひかり",
"3"
],
[
"山形県の果物といえば?",
"1.さくらんぼ",
"2.マンゴー",
"3,みかん",
"2"
],
[
"山形県の県庁所在地どこ?",
"1.天草市",
"2.東根市",
"3,山形市",
"3"
]
};
*/
let question = [[
"山形県のお米といえば?","1.ひとめぼれ","2.ほえぬき","3,こしひかり","3"
],[
"山形県の果物といえば?",
"1.さくらんぼ",
"2.マンゴー",
"3,みかん",
"2"
],
[
"山形県の県庁所在地どこ?",
"1.天草市",
"2.東根市",
"3,山形市",
"3"
]
];
console.log(question[0][0]);
let quiz = document.getElementById('question');
let ans1 = document.getElementById('ans1');
let ans2 = document.getElementById('ans2');
let ans3 = document.getElementById('ans3');
let correct = 0;
let quizCnt = 0;
function quizSet() {
/* ここが間違い
quiz.textContent = question(quizCnt)[0];
ans1.textContent = question(quizCnt)[1];
ans2.textContent = question(quizCnt)[2];
ans3.textContent = question(quizCnt)[3];
*/
quiz.textContent = question[quizCnt][0];
ans1.textContent = question[quizCnt][1];
ans2.textContent = question[quizCnt][2];
ans3.textContent = question[quizCnt][3];
}
quizSet();
function answerCheck(ans) {
if(ans == question[quizCnt][4]) {
alert("正解!");
correct++;
} else {
alert("不正解、、、!");
}
quizCnt++;
if(quizCnt == question.length) {
quiz.textContent = `正解数は${correct}でした!`;
ans1.textContent ="";
ans2.textContent ="";
ans3.textContent ="";
} else {
quizSet();
}
}
</script>
</body>
</html>
No.2
- 回答日時:
> エーラーが出て、調べても、どこが間違っているのか、
エラー表示が複数出ている場合は、最初の報告をまず見ましょう。
ご提示の場合ですと明確な文法違反があるので、
ページ表示の際に最初の報告として SyntaxError が表示されるはずです。
この文法違反があるのでスクリプト記載が無効化され、
スクリプトが無いのでボタンを押した際の処理が実行できず、
さらなるエラー表示が連発してしまうと推測します。
ですが、本質的に重要なのは最初の報告の SyntaxError の内容のみであり、
そこに書かれている場所(またはその前後)と説明文から、
間違いを特定することができます。
参考)
https://learn.microsoft.com/ja-jp/microsoft-edge …
余談ではありますが、
変数 question のデータ構造ですが、
配列の順番に特定の意味を持たせるのはお勧めできないので、
以下のようなデータ構造に見直しては如何でしょうか。
例)
// 問題型オブジェクトの配列
const questions = [ {q:問, c:[選択肢1, ...], a:答 }, ... ];
...
let qa = questions[番号]; // 配列から問題を順番に取る
問題 = qa.q; // 0番目とせずに名前をつけたプロパティから取る
選択肢1 = qa.c[0]; // 選択肢だけの配列から順番に取る
...
if (回答 = qa.a) { alert("正解"); }
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript HTMLとJavaScriptで作ったタイマーアプリが正常に動作しない 7 2023/12/15 19:32
- JavaScript HTMLとJavaScriptで作ったタイマーアプリで時間分の設定方法がわからない 2 2023/12/18 18:12
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript コードレビューをお願いします。 3 2023/12/17 01:07
- JavaScript 【JavaScript】検索がヒットした場合、プルダウンをオープンで表示させる方法 2 2023/09/06 14:02
- JavaScript JavaScriptで作ったアプリが正常に動作しない。改善したい。 3 2024/01/06 16:33
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- JavaScript HTMLとJavaScriptで作った表示して検索するWebアプリが正常に動かない 3 2024/01/05 17:48
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
Javascriptエラーの原因が分からない
JavaScript
-
Javascript で共通の処理をどこまでまとめるべきか分からないのでアドバイスお願い致します
JavaScript
-
JavaScript 超初心者です。 Document.writeがなぜか反映されません。何が間違っ
JavaScript
-
-
4
アマゾンのような評価の星を選択した情報を確認画面でも表示させたいです。
PHP
-
5
このjavascriptのif文、条件式になっていないですが、どういう意味ですか?
JavaScript
-
6
javascriptでbgmを自動再生する方法を教えてください。
JavaScript
-
7
htmlの修正方法を教えていただきたいです。
HTML・CSS
-
8
ボタンが押されたらWebページの文字コードを 変える、というプログラミングを書きたいです。 目的は文
HTML・CSS
-
9
質問です。 配列が100以上の場合は、100単位で繰り返し処理を実行したいのですが、どのように処理を
Java
-
10
C言語って古いですか?
C言語・C++・C#
-
11
かっこいいウェブを作るテク
HTML・CSS
-
12
HTMLとJavaScriptで作ったタイマーアプリが正常に動作しない
JavaScript
-
13
終端記号、非終端記号とは
C言語・C++・C#
-
14
CSV出力を画面から選択したデータ項目のみを出力させたいです。
Java
-
15
JavaScriptで作ったアプリが正常に動作しない。改善したい。
JavaScript
-
16
ワードプレスインストールできない
オープンソース
-
17
入力フォームの空白や改行を制限したい
PHP
-
18
ソフトがInternet Explorerでしか開かない
Windows 7
-
19
オススメのプログラミングスクールあればお聞きしたいです。 ・PHPを学べる ・ポートフォリオ作成でき
PHP
-
20
disabled プロパティが表示されない原因が分からない
JavaScript
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
動画の上に広告をオーバーレイ...
-
時間帯によってclass名を変更し...
-
macかwinか判別しスタイルシー...
-
Q&A掲示板の入力フォームに文字...
-
3重のクォーテーション
-
javascriptでの(-)ハイフンの処...
-
CSSでreadonlyの機能はあり...
-
mouseoverで、リンクをずらす。
-
JspにIf条件を追加したいのです...
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
Excelシート上のマクロを登録し...
-
EXCEL VBA マクロ 実行する度に...
-
switch の範囲指定
-
【Excel】特定の文字を含むセル...
-
CloseとDisposeの違い
-
VBAでループ内で使う変数名を可...
-
インタラクティブの反対語は?
-
「PC Helpsoft Driver Updated...
-
エクセルVBAで、MsgBox やInput...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Q&A掲示板の入力フォームに文字...
-
JavascriptでDom XSSの脆弱性対...
-
【JavaScript】検索がヒットし...
-
CSSでreadonlyの機能はあり...
-
JavascriptでXSSの脆弱性への対...
-
formのsubmitを押すとモーダル...
-
確認ダイアログを次からは表示...
-
特定の条件のHTML要素を一括で...
-
JavascriptのHTMLクラス表示に...
-
jQueryでのドラッグアンドドロ...
-
javascriptで複数の表示・非表...
-
jqueryを使ったスムーススクロ...
-
javascriptのエラーで質問です。
-
jqueryアコーディオンの上部の...
-
JavaScriptのdiv.style属性の変...
-
2回目以降のページロード時には...
-
改行をしたいが、<br>と...
-
jQueryのCSSで値に変数を使う方法
-
クリックすると、色が変わるよ...
-
動画の上に広告をオーバーレイ...
おすすめ情報