• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:javascript についてご教示くださいませ。)

JavaScript初心者のための乱数表示の方法

このQ&Aのポイント
  • JavaScriptを初めて学ぶ初心者の方向けに、乱数表示の方法についてご説明します。
  • JavaScriptを使用してランダムな文字を表示する方法についての質問です。サンプルコードを使用して、ボタンをクリックすると異なる文字が表示されるようにしたいと思っています。
  • 乱数を使用して文字を表示する方法について、初心者の方にも分かりやすく解説します。具体的なコードを提示しながら、手順を説明します。

質問者が選んだベストアンサー

  • ベストアンサー
  • Ogre7077
  • ベストアンサー率65% (170/258)
回答No.2

予め表示する枠を HTML で用意しておき、スクリプトで中身だけを書き換える方法です <!-- omikuji を表示する枠3x5個 --> <table id=omikujiwaku><tbody> <tr><td>A<td>A<td>A <tr><td>A<td>A<td>A <tr><td>A<td>A<td>A <tr><td>A<td>A<td>A </tbody></table> // omikuji() の最後を、戻り値を返すように修正 alert(msg); → return msg; <!-- onClick を別の処理に--> onclick="omikuji()" → onclick="枠埋める()" // 枠毎に omikuji() を実行する function 枠埋める() { var 全ての枠 = document.getElementById('omikujiwaku').querySelectorAll('td'); var 枠毎の処理 = function(td){ td.textContent = omikuji() }; Array.prototype.slice.apply(全ての枠).forEach(枠毎の処理); }

tanakakanri
質問者

お礼

すごいです。html で表示できるのですね。有難うございます。おかげて良いものができました。m(_ _)m

その他の回答 (2)

回答No.3

rand = Math.floor(Math.random()*5); var rand = Math.floor(Math.random()*5); -- var 全ての枠 = document.getElementById('omikujiwaku').querySelectorAll('td'); var 全ての枠 = document.querySelectorAll('#omikujiwaku td'); -- Array.prototype.slice.apply(全ての枠).forEach(枠毎の処理); Array.prototype.forEach.call (全ての枠, 枠毎の処理); -- <form><input type="button" value="クリック" onclick="hoge()"></form> -- <script> var omikuji = (function (list) {  var len = list.length;  var rnd = Math.random;  return function () {   return list[rnd () * len | 0]; }; })('ABCDE'); function hoge () {  var b = document.querySelectorAll('#omikujiwaku td');  var c = function (td) { td.textContent = this () };  Array.prototype.forEach.call (b, c, omikuji); } </script>

tanakakanri
質問者

お礼

ご丁寧にご指導いただき有難うございます。m(_ _)m助かりました。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

同じ回数ずつ縦×横するなら二重でforを回すのが妥当です。 ご提示のソースを流用するならこんな感じ <form><input type="button" value="クリック" onClick="omikujiA()"></form> <div id="hoge"></div> <script> function omikujiA() { var str=""; for(var i=0;i<5;i++){ for(var j=0;j<3;j++){ if(j>0) str+=" "; str+=omikuji(); } str+="<br>\n"; } document.getElementById("hoge").innerHTML=str; } function omikuji() { rand = Math.floor(Math.random()*5); if (rand == 0) msg = "A"; if (rand == 1) msg = "B"; if (rand == 2) msg = "C"; if (rand == 3) msg = "D"; if (rand == 4) msg = "E"; return msg; } </script>

tanakakanri
質問者

お礼

お答え頂き有難うございます。 色んなやり方があるのですね。 勉強になります。m(_ _)m

関連するQ&A

専門家に質問してみよう