これ何て呼びますか

javascript無知識なのですが
諸事情により下記のjsをdocument.write以外の方法で記述しなければならないのですが
document.write以外の記述で同じ効果が得られる記述法ってないのですか?
あればご教示よろしくお願いします。


<script language="javascript">
<!--

function rotationAdv() {
m = 0, x = 0, y = 0;
ad = new Array();
adv = new Array();
hit = new Array();




hit[0] = 1; adv[0] = 'A';

hit[1] = 1; adv[1] = 'B';

hit[2] = 1; adv[2] = 'C';




for(i=0; i<=hit.length - 1; i++) {
m += hit[i];
}
n = Math.floor(Math.random() * m);
n++;
for(i=0; i<=hit.length - 1; i++) {
x = y;
y += hit[i];
if(x<n && n<=y) ad = adv[i];
}
document.write(ad);
}
rotationAdv();
//-->
</script>

A 回答 (3件)

document.getElementById("id1").innerHTML=ad;


としておいて、BODYのonloadで関数を呼び出せば、
<div id="id1"></div> ←このタグの部分で表示されます。
なんてことは、可能ですね。
それで良いのかは、その「諸事情」ってやつ次第なんですが。

adは配列だけど、結果的に配列の1要素を代入してるし・・・
なんでadをnew arrayしてるのか、さっぱりわからない。。。
    • good
    • 0

document.getElementById(Nakami).innerHTML = ad;


にかえて
<div id="Nakami"></div>
をbody内に入れる。

javascriptを使えないブラウザに考慮して、
<div id="Nakami">このブラウザでは表示できません</div>
と書くのも良いでしょう。
    • good
    • 0

どうしたいかによりますが、手っ取り早いのは


textareaにvalueを指定して書き込んでしまうこと。
そうでなければ挿入するポイントを指定してDOMで書きだすこと。

ただしadは配列なので(?)そのまま記述するのはNGでしょう。
どういう風に書きたいかを提示した方がいい気がしますが・・・
    • good
    • 0

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