重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

テーブルの背景を表示のたびに変えたいと思っています。
http://oshiete1.goo.ne.jp/kotaeru.php3?q=171099& …
この記事を参考にしました。

用意している壁紙は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>

ランダムにならないどころか何も表示されません。
どこがどう間違っているのでしょうか。

A 回答 (2件)

タグに属性をぐだぐだ書くのは今となっては微妙な感じですね


cssで処理するのが妥当だと思います。
ただし今回は割愛して・・・。

backgroudの指定の際にダブルクォーテーションでくくってみては?
とりあえずデバッグにはdocument.write内の、<を&lt;に置換するだけで
ソースへの理解が深まります

<SCRIPT LANGUAGE="JavaScript">
var imgback = "haikei/" ;
var imgno = (Math.floor(Math.random() * 6) + 1) ;
document.write("&lt;TABLE frame=\"void\" cellpadding=\"0\" width=\"200\" height=\"150\" background = \"", imgback+imgno ,".gif\">");
document.write("&lt;TR>&lt;td align=\"center\">hello!&lt;/TD>&lt;/TR>");
document.write("&lt;/TABLE>");
</SCRIPT>
    • good
    • 0
この回答へのお礼

ポイント付与とお礼が遅れて申し訳ありません。
JavaScriptとCSSの基本をやりなおしてきます。
タグに属性をぐだぐだ書く、今となっては、の部分で、自分の知識が少し古すぎると納得できました。ありがとうございます。

お礼日時:2009/02/08 22:16

エスケープを使うとわかりにくくなるので、シングルクォーテーションを利用して書くほうがわかりやすくなると思います。


document.write('<TABLE frame="void" cellpadding="0" width="200" height="150" background = "', imgback+imgno ,'.gif">');

No.1で回答されているように、style属性を制御する方がよさそう。
○○.style.backgroundImage = 'url(haikei/' + imgback+imgno + ')';
とか・・(○○はエレメント)
    • good
    • 0
この回答へのお礼

ポイント付与とお礼が遅れて申し訳ありません。
JavaScriptとCSSの基本をやりなおしてきます。
CSSがほとんど頭に入ってなかったのが恥ずかしい限りです。
ありがとうございました。

お礼日時:2009/02/08 22:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!