- ベストアンサー
配列の文字列をランダム表示する方法
- JavaScriptを使用して<div>タグの中にscriptで配列の文字列をランダム表示する方法について教えてください。
- 質問者はプログラムを初めて2年目であり、JavaScriptは一年目です。
- 配列の作成方法やランダム表示の方法について詳しく教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
<!DOCTYPE html> <title>配列の文字列をランダム表示 & なにかしら</title> <style> #comment { visibility : hidden; position : absolute; border : 3px ridge gray; background : #ffc; } </style> <body> <div id="comment"> 2秒後にメッセージが表示されます </div> <script> var vi = function () { var comment = [ 'なるほど', '賛成', 'そう思いません。' ]; var length = comment.length; var target = document.getElementById ('comment'); var flag = false; var random = Math.random; var memory = null; return function () { var r; if (! flag) { target.style.visibility = 'visible'; flag = true; } do { r = random () * length |0; } while (r === memory); target.firstChild.nodeValue = comment[r]; memory = r; }; } (); setInterval (vi, 2000); </script> setInterval の だい1ひきすうに、もじれつを わたすのは 「わたしのすむ まちより、いなかくさい」と、おもいます。 だい3ひきすうは、ie できょどうが ちがうので、いわゆる クロージャーに してみました。 <div id="comment"></div> のように、なかをからにしないように。(ちょっと とらうま) e.append しつづけると、もじれつがどんどん・・・ これにフェードイン・フェードアウトきのうをつけたいのなら、さいしつもんすると 吉。
その他の回答 (3)
- jjon-com
- ベストアンサー率61% (1599/2592)
document.getElementById('comment').innerHTML = comment[randnum]; http://okwave.jp/qa/q7154675.html の私の過去の回答ANo.2
お礼
ありがとうございました。
- Q-pid
- ベストアンサー率90% (9/10)
こんばんは。 document.writeは、直接BODY要素に対して出力してしまいます。 このため、貴方が作成されたDIVタグごと無くなってしまい、 期待した出力結果を得ることが出来ません。 このシーンのように特定のタグに要素を出力したいのであれば 以下のように、要素を追加する形で対応できると思います。 e.appendChild(document.createTextNode(comment[randnum])); あと、間違い?かも知れませんが var comment = new Array(3) ; //配列を作ってます。 week[0] = "なるほど" ; week[1] = "賛成" ; week[2] = "そう思いません。" ; この部分、以下のようにすべきでは無いでしょうか? var comment = new Array(3) ; //配列を作ってます。 comment[0] = "なるほど" ; comment[1] = "賛成" ; comment[2] = "そう思いません。" ;
お礼
ありがとうございました。
innerHTML
お礼
ありがとうございました。
お礼
ありがとうございました。