我是制作网站的新手,只有一些C ++的概念。所以我有这个代码 在HTML中:
<html>
<body>
<script type="text/javascript" src="http://localhost/Coin/wp-content/uploads/custom-css-js/77.js "></script>
<p>Click the button to trigger a function ".</p>
<button onclick="myFunction()">Generate question</button>
<p id="demo"></p>
<div id="quote"></div>
<script>
function myFunction()
{
document.getElementById("quote").innerHTML = showquote;
}
</script>
</body>
</html>
这在JavaScript中:
var myArray = ['Question 1', 'Test2', 'Practise 3'];
var rand = Math.floor(Math.random() * myArray.length);
function showquote(){
document.getElementById('quote').innerHTML = myArray[rand];
}
showquote();
单击该按钮时,将显示以下行:
function showquote(){ document.getElementById('quote').innerHTML = myArray[rand]; }
正如我所说,我只是在尝试这种我几乎不知道的语言,我不是在调用这个功能吗?提前谢谢。
答案 0 :(得分:3)
function myFunction()
{
document.getElementById("quote").innerHTML = showquote;
}
应该是
function myFunction()
{
showquote();
}
点击here for an executable demo of the solution above。
当你这样做时
document.getElementById("quote").innerHTML = showquote;
您正在为内部HTML分配showquote
函数的源代码。这就是您在页面中显示function showquote(){ document.getElementById('quote').innerHTML = myArray[rand]; }
(源代码showquote
)的原因。
所以,你真正想做的就是调用showquote
函数,因为该函数只改变了HTML。因此正确的表达式是showquote()
,它调用showcode
函数。
从现在开始,myFunction
只是对showquote
的调用:
function myFunction()
{
showquote();
}
然后您实际上可以将其删除并直接在showquote
元素中使用HTML
。
<button onclick="showquote()">Generate question</button>
另一件事是,在你的JavaScript文件中,第一次调用showquote
,就在声明之后,在这里:
function showquote() {
document.getElementById('quote').innerHTML = myArray[rand];
}
showquote(); // <----- this is the invocation I'm talking about
goint是否会产生错误。只是因为它的代码试图找到id
= quote
(此处为document.getElementById('quote')
)的元素,并且此JavaScript代码正在执行,此类元素尚不存在。因此,您在此时收到错误。
这里的解决方案可能就是根本不打电话给showquote
。或者在HTML页面底部附近的<script>
标记中调用它,在声明quote
元素之后的某个地方。