• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:<div>タグの中にscriptで表示)

配列の文字列をランダム表示する方法

このQ&Aのポイント
  • JavaScriptを使用して<div>タグの中にscriptで配列の文字列をランダム表示する方法について教えてください。
  • 質問者はプログラムを初めて2年目であり、JavaScriptは一年目です。
  • 配列の作成方法やランダム表示の方法について詳しく教えてください。

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

  • ベストアンサー
回答No.4

<!DOCTYPE html> <title>配列の文字列をランダム表示 &amp; なにかしら</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 しつづけると、もじれつがどんどん・・・ これにフェードイン・フェードアウトきのうをつけたいのなら、さいしつもんすると 吉。

noname#157436
質問者

お礼

ありがとうございました。

その他の回答 (3)

  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.3

document.getElementById('comment').innerHTML = comment[randnum]; http://okwave.jp/qa/q7154675.html の私の過去の回答ANo.2

noname#157436
質問者

お礼

ありがとうございました。

  • Q-pid
  • ベストアンサー率90% (9/10)
回答No.2

こんばんは。 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] = "そう思いません。" ;

noname#157436
質問者

お礼

ありがとうございました。

noname#158634
noname#158634
回答No.1

innerHTML

noname#157436
質問者

お礼

ありがとうございました。

関連するQ&A