在<p> </p>中写Javascript

时间:2013-09-06 13:30:58

标签: javascript html

我正在创建一个随机事实生成器,它将写在<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";
 }

7 个答案:

答案 0 :(得分:4)

您的问题是getElementByName上没有名为document的功能。

你想要其中一个:

document.getElementById('rfact');
document.getElementsByName('rndfact')[0] // notice the plural

答案 1 :(得分:1)

您正在使用不存在的方法。没有getElementByName这样的方法。

使用document.getElementsByName(注意元素中的复数,你会得到一个数组)或document.getElementById(这是正确的方法)。

解决方案:http://jsfiddle.net/P7wev/

答案 2 :(得分:1)

使用 getElementById ,因为您提供的 getElementByName 不存在, P 中的名称属性标签。

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";
}

答案 3 :(得分:0)

改为使用document.getElementById("rfact").innerHTML=...

答案 4 :(得分:0)

您可以使用id设置。 getElementsByName返回一个数组,您必须在访问innerHTML

之类的属性之前使用数组表示法来访问返回值。

使用getElementById

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

使用getElementsByName

function rfact(){
   var nrfact=Math.floor(Math.random()*3)
   var elements = document.getElementsByName("rndfact");
   if (nrfact==0) elements[0].innerHTML="random fact1";
   if (nrfact==1) elements[0].innerHTML="random fact2";
   if (nrfact==2) elements[0].innerHTML="random fact3";
}

在公式中使用3而不是2来允许最多3个事实。

答案 5 :(得分:0)

HTML - &gt; ID = “rndfact”

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

JS - &gt;的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]

答案 6 :(得分: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>