我正在创建一个随机事实生成器,它将写在<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";
}
答案 0 :(得分:4)
您的问题是getElementByName
上没有名为document
的功能。
你想要其中一个:
document.getElementById('rfact');
document.getElementsByName('rndfact')[0] // notice the plural
答案 1 :(得分:1)
您正在使用不存在的方法。没有getElementByName
这样的方法。
使用document.getElementsByName
(注意元素中的复数,你会得到一个数组)或document.getElementById
(这是正确的方法)。
答案 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>