JavaScriptで作る、リロードごとに問題がシャッフルされるクイズ。
JavaScriptでリロードごとに問題がシャッフルされるクイズを作った。
See the Pen Untitled by mkunu (@m-kunugi) on CodePen.
quiz.html
<html>
<head>
<title>損益計算書クイズ</title>
<script type="text/javascript">
// 配列(問題と答えの選択肢)
var array1 = [['販売手数料', 0], ['広告宣伝費', 0],
['受取利息', 1],
['支払利息', 2],
['固定資産売却益', 3],
['固定資産売却損', 4]];
function answer(){
for (const element of array1) {
var choices = document.getElementsByName(element[0]) ;
if(choices[element[1]].checked) document.getElementById('color'+ element[0]).style.color="blue"
else document.getElementById('color'+ element[0]).style.color="red"
}
}
</script>
</head>
<body>
損益計算書クイズ
(リロードするとランダムに表示されます。)
<form name="f">
<!--答え合わせのボタンの配置-->
<input type="button" value="答え合わせ" onclick="answer()">
<div id="order_list">
<script type="text/javascript">
var d1 = document.getElementById('order_list');
// 配列をシャッフル https://teratail.com/questions/81199
function arrayShuffle (array) {
var k, t, len;
len = array.length;
if (len < 2) {
return array;
}
while (len) {
k = Math.floor(Math.random() * len--);
t = array[k];
array[k] = array[len];
array[len] = t;
}
return array;
}
arrayShuffle(array1);
for (const element of array1) { // 問題の作成
d1.insertAdjacentHTML('afterend', '<div class="order">\
<b><p id="color'+ element[0] +'">\
'+ element[0] +'</b><br>\
<input type="radio" name="'+ element[0] +'" > 販売費及び一般管理費\
<input type="radio" name="'+ element[0] +'" > 営業外収益\
<input type="radio" name="'+ element[0] +'" > 営業外費用\
<input type="radio" name="'+ element[0] +'" > 特別利益\
<input type="radio" name="'+ element[0] +'" > 特別損失\
</p></div>');
}
</script>
</div>
<!--答え合わせのボタンの配置-->
<input type="button" value="答え合わせ" onclick="answer()">
</form>
</body>
</html>
参考サイト
ラジオボタン式クイズの作り方
http://www2.kuma.u-tokai.ac.jp/~kfuji/hp/JavaScript/index.html
配列シャッフルの仕方
https://teratail.com/questions/81199
Author And Source
この問題について(JavaScriptで作る、リロードごとに問題がシャッフルされるクイズ。), 我々は、より多くの情報をここで見つけました https://qiita.com/mkunu/items/48e95c68295c5d151098著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .