0

<p>タグ内に書き込まれるランダムファクトジェネレーターを作成しています。そこにあるすべてのチュートリアルに従いましたが、どこに問題があるのか​​ わかりません。関数は正常に呼び出されています(アラートで確認します)。

コードは次のとおりです。

HTML:

<p id="rfact" name="rndfact">random fact goes here</p>

JS:

function rfact(){
 var nrfact=Math.floor(Math.random()*2)
 alert(nrfact);
 if (nrfact==0) document.getElementByName("rndfact").innerHTML="random fact1";
 if (nrfact==1) document.getElementByName("rndfact").innerHTML="random fact2";
 if (nrfact==2) document.getElementByName("rndfact").innerHTML="random fact3";
 }
4

7 に答える 7

4

あなたの問題は、 で呼び出される関数がないことgetElementByNameですdocument

次のいずれかが必要です。

document.getElementById('rfact');
document.getElementsByName('rndfact')[0] // notice the plural
于 2013-09-06T13:36:05.227 に答える
1

存在しないメソッドを使用しています。などの方法はありませんgetElementByName

document.getElementsByName(要素の複数形に注意してください。配列が得られます) またはdocument.getElementById(これが正しい方法です) のいずれかを使用します。

解決策: http://jsfiddle.net/P7wev/

于 2013-09-06T13:36:53.517 に答える
1

指定したgetElementByNameが存在せず、 Pタグ内のname属性も存在しないため、getElementByIdを使用します。

function rfact(){
 var nrfact=Math.floor(Math.random()*2);
 alert(nrfact);
 if (nrfact==0) document.getElementById("rfact").innerHTML="random fact1";
 if (nrfact==1) document.getElementById("rfact").innerHTML="random fact2";
 if (nrfact==2) document.getElementById("rfact").innerHTML="random fact3";
}
于 2013-09-06T13:39:26.570 に答える
0

HTML --> id="rndfact"

<p id="rndfact" name="rndfact">random fact goes here</p>

JS --> getElementById

function rfact() {
    var nrfact = Math.floor(Math.random() * 3);

    if (nrfact == 0) document.getElementById("rndfact").innerHTML = "random fact1";
    if (nrfact == 1) document.getElementById("rndfact").innerHTML = "random fact2";
    if (nrfact == 2) document.getElementById("rndfact").innerHTML = "random fact3";
}
rfact()

getElementById を使用するか、getElementsByName[0] を使用します

于 2013-09-06T13:35:44.350 に答える
0

document.getElementById("rfact").innerHTML=...代わりに使用してください。

于 2013-09-06T13:33:26.667 に答える
0

これでうまくいくはずです。

<script type="text/javascript">

    window.onload=function(){
rfact();
function rfact(){
 var nrfact=Math.floor(Math.random()*2)
 alert(nrfact);
 if (nrfact==0) document.getElementById("rfact").innerHTML="random fact1";
 if (nrfact==1) document.getElementById("rfact").innerHTML="random fact2";
 if (nrfact==2) document.getElementById("rfact").innerHTML="random fact3";
 }

    }
</script>
于 2013-09-06T13:38:45.867 に答える