- ベストアンサー
テーブルもしくセルの背景をランダムにしたいがうまくいかない
テーブルの背景を表示のたびに変えたいと思っています。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=171099&rev=1 この記事を参考にしました。 用意している壁紙は7枚で画像ファイルは0~7.gifとしています。 記述するhtmlファイルと同じ階層にhaikeiフォルダを置き、その中に0~7.gif画像を入れました。画像の大きさは200*150で統一しています。 <SCRIPT LANGUAGE="JavaScript"> <!-- var imgback = "haikei/" ; var imgno = (Math.floor(Math.random() * 6) + 1) ; document.write("<TABLE frame=\"void\" cellpadding=\"0\" width=\"200\" height=\"150\" background = ", imgback+imgno ,".gif>"); document.write("<TR><td align=\"center\">hallo!</TD></TR>"); document.write("</TABLE>"); //--> </SCRIPT> ランダムにならないどころか何も表示されません。 どこがどう間違っているのでしょうか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
タグに属性をぐだぐだ書くのは今となっては微妙な感じですね cssで処理するのが妥当だと思います。 ただし今回は割愛して・・・。 backgroudの指定の際にダブルクォーテーションでくくってみては? とりあえずデバッグにはdocument.write内の、<を<に置換するだけで ソースへの理解が深まります <SCRIPT LANGUAGE="JavaScript"> var imgback = "haikei/" ; var imgno = (Math.floor(Math.random() * 6) + 1) ; document.write("<TABLE frame=\"void\" cellpadding=\"0\" width=\"200\" height=\"150\" background = \"", imgback+imgno ,".gif\">"); document.write("<TR><td align=\"center\">hello!</TD></TR>"); document.write("</TABLE>"); </SCRIPT>
その他の回答 (1)
- fujillin
- ベストアンサー率61% (1594/2576)
エスケープを使うとわかりにくくなるので、シングルクォーテーションを利用して書くほうがわかりやすくなると思います。 document.write('<TABLE frame="void" cellpadding="0" width="200" height="150" background = "', imgback+imgno ,'.gif">'); No.1で回答されているように、style属性を制御する方がよさそう。 ○○.style.backgroundImage = 'url(haikei/' + imgback+imgno + ')'; とか・・(○○はエレメント)
お礼
ポイント付与とお礼が遅れて申し訳ありません。 JavaScriptとCSSの基本をやりなおしてきます。 CSSがほとんど頭に入ってなかったのが恥ずかしい限りです。 ありがとうございました。
お礼
ポイント付与とお礼が遅れて申し訳ありません。 JavaScriptとCSSの基本をやりなおしてきます。 タグに属性をぐだぐだ書く、今となっては、の部分で、自分の知識が少し古すぎると納得できました。ありがとうございます。