質問するログイン新規登録

質問編集履歴

4

書式の改善

2018/08/13 14:48

投稿

taka_php
taka_php

スコア14

title CHANGED
File without changes
body CHANGED
@@ -51,7 +51,9 @@
51
51
 
52
52
  })();
53
53
 
54
+ ```
54
- ```html
55
+ html
56
+ ```
55
57
  <!DOCTYPE html>
56
58
  <html lang="ja">
57
59
  <head>

3

分かりやすく

2018/08/13 14:48

投稿

taka_php
taka_php

スコア14

title CHANGED
File without changes
body CHANGED
@@ -7,181 +7,50 @@
7
7
 
8
8
  ```javascript
9
9
 
10
- function btn1_click(){
11
- // 値(数値)を取得
12
- var num = document.form1.color1.selectedIndex;
13
-
14
- // 値(value値)を取得
15
- var str = document.form1.color1.options[num].value;
16
-
17
- currentNum = str;
18
- }
19
-
20
10
  (function() {
21
- 'use strict';
11
+ 'use strict';
22
12
 
23
- // id の questionを、変更させる命令
24
- var question = document.getElementById('question');
13
+ var question = document.getElementById('question');
25
- var btn = document.getElementById('btn');
14
+ var btn = document.getElementById('btn');
26
- // id のanswer 直下の li を変更させる命令
27
- var answers = document.querySelectorAll('#answers > li');
15
+ var answers = document.querySelectorAll('#answers > li');
28
- var kaitou = document.getElementById('kaitou');
29
- var kaisetu = document.getElementById('kaisetu');
30
- var result = document.getElementById('result');
31
- //得点ラベルの値を表示
32
- var scoreLabel = document.querySelector('#result > p');
33
16
 
34
17
 
35
- //
36
- var shuffledAnswers;
37
-
38
- //配列
39
-
40
- var quizSet = [
18
+ var quizSet = [
41
19
  {q: 'What is A?', a: ['A0', 'A1', 'A2']},
42
20
  {q: 'What is B?', a: ['B0', 'B1', 'B2']},
43
21
  {q: 'What is C?', a: ['C0', 'C1', 'C2']}
44
22
  ];
45
23
 
46
- //問題番号を設定
47
- var currentNum = 0;
24
+ var currentNum = 0;
48
- //回答したかを
49
- var isAnswered;
50
- //問題完了後にスコアを表示
51
- var score = 0;
52
25
 
26
+
53
- //シャッフル処理の実装
27
+ function setQuiz() {
28
+
29
+
30
+
31
+ }
54
32
 
33
+ function setEvents() {
34
+ var i;
35
+ for (i = 0; i < answers.length; i++) {
36
+ answers[i].addEventListener('click', function() {
37
+ checkAnswer(this);
38
+ });
39
+ }
40
+ }
55
41
 
42
+ function checkAnswer(node) {
43
+
44
+
45
+
46
+ }
47
+ }
56
48
 
49
+ setQuiz();
50
+ setEvents();
57
51
 
58
- function shuffle(arr) {
59
- var i;
60
- var j;
61
- var tmp;
62
- for (i = arr.length - 1; i >= 0; i--) {
63
- j = Math.floor(Math.random() * (i + 1));
64
- tmp = arr[i];
65
- arr[i] = arr[j];
66
- arr[j] = tmp;
67
- }
68
- return arr;
69
- }
70
-
71
- function setQuiz() {
72
-
73
- //次の問題にいくときに回答、解説を消す
74
- //回答を表示させる。
75
- kaitou.textContent = '';
76
- kaisetu.textContent = '';
77
-
78
-
79
- var i;
80
-
81
- // id="question" を文字に置き換える命令
82
- question.textContent = quizSet[currentNum].q;
83
-
84
- // id answer 直下のli を文字に置き換える命令
85
- // shuffledAnswers = shuffle(quizSet[currentNum].a);
86
-
87
- //slice()をつけないと、配列の順番まで入れ替わる
88
- shuffledAnswers = shuffle(quizSet[currentNum].a.slice());
89
-
90
- //問題表示でfalse
91
- isAnswered = false;
92
-
93
- for (i = 0; i < answers.length; i++) {
94
- answers[i].classList.remove('correct');
95
- answers[i].classList.remove('wrong');
96
- answers[i].textContent = shuffledAnswers[i];
97
- }
98
- btn.classList.add('disabled');
99
-
100
- //最後の問題では、btnをshow scoreにする。
101
- if (currentNum === quizSet.length - 1) {
102
- btn.textContent = 'Show Score';
103
- }
104
-
105
- }
106
-
107
- function setEvents() {
108
- var i;
109
- for (i = 0; i < answers.length; i++) {
110
- answers[i].addEventListener('click', function()
111
- {
112
- checkAnswer(this);
113
- });
114
- }
115
-
116
- //btnをクリックしたときの処理,次の問題に
117
- btn.addEventListener('click', function() {
118
- if (this.classList.contains('disabled')) {
119
- return;
120
- }
121
- //ボタンを押したときの動作
122
- // setQuiz();
123
- if (currentNum === quizSet.length) {
124
- // show score
125
- // console.log('Score: ' + score + ' / ' + quizSet.length);
126
- //スコアの値を入れる
127
- scoreLabel.textContent = 'Score: ' + score + ' / ' + quizSet.length;
128
- // 最後の問題だったら、スコアを表示
129
- result.classList.add('show');
130
- } else {
131
- setQuiz();
132
- }
133
- });
134
-
135
- }
136
-
137
-
138
- function checkAnswer(node) {
139
-
140
- //回答されているときはそれ以降の処理をしない。
141
- if (isAnswered) {
142
- return;
143
- }
144
-
145
- //クリックされたらtrue
146
- isAnswered = true;
147
-
148
-
149
- if (node.textContent === quizSet[currentNum].a[0]) {
150
- // console.log('correct!');
151
-
152
- //nodeのテキストに文字をつける
153
- node.textContent += '... 正解!!';
154
- //node に、クラスをつける
155
- node.classList.add('correct');
156
- //正解時にスコアを加算
157
- score++;
158
-
159
-
160
- } else {
161
- // console.log('wrong!');
162
- node.textContent += '... 間違い!!';
163
- node.classList.add('wrong');
164
- }
165
-
166
- //回答を表示させる。
167
- kaitou.textContent = '【回答】:' + quizSet[currentNum].a[0];
168
- //実験 解説を表示させる。を表示させる
169
- kaisetu.innerHTML = '★解説★<br>' + quizSet[currentNum].s;
170
-
171
-
172
- //回答後にネクストボタンを押せるようにする。
173
- btn.classList.remove('disabled');
174
- currentNum++;
175
- }
176
-
177
- setQuiz();
178
- setEvents();
179
-
180
52
  })();
181
53
 
182
-
183
- ```
184
-
185
54
  ```html
186
55
  <!DOCTYPE html>
187
56
  <html lang="ja">
@@ -218,11 +87,6 @@
218
87
  <br/>
219
88
  <input type="button" value="問題選択" onclick="btn1_click()"/>
220
89
 
221
- <div id="result">
222
- <p>Score: 3/3</p>
223
- <a href="">Replay</a>
224
- </div>
225
-
226
90
  </div>
227
91
 
228
92
  <script src="js/main.js"></script>

2

コードミス

2018/08/13 14:46

投稿

taka_php
taka_php

スコア14

title CHANGED
File without changes
body CHANGED
@@ -179,15 +179,7 @@
179
179
 
180
180
  })();
181
181
 
182
- function btn1_click(){
183
- // 値(数値)を取得
184
- var num = document.form1.color1.selectedIndex;
185
182
 
186
- // 値(value値)を取得
187
- var str = document.form1.color1.options[num].value;
188
-
189
- var currentNum = str;
190
- }
191
183
  ```
192
184
 
193
185
  ```html

1

タイトルの修正

2018/08/13 13:08

投稿

taka_php
taka_php

スコア14

title CHANGED
@@ -1,1 +1,1 @@
1
- javascriptにて、ブラウザから
1
+ javascriptにて、ブラウザからセレクトボックスにて変数を変更する方法
body CHANGED
File without changes