<div id="fontfamily">test
</div>
<button onclick="myFunction()">Try it</button>
var fontType = [ "Arial", "Verdana", "Courier"];
var num;
num=Math.floor(Math.random()*3);
document.getElementById("fontfamily").style.fontFamily =fontType[num];
console.log(num);
function myFunction() {
var x = document.getElementById("fontfamily").name;
document.getElementById('myFunction()').innerHTML = x;
}
我不知道什么不起作用。我的目标是每次按下按钮时字体都会改变。 tnxp>
答案 0 :(得分:0)
您的代码中存在许多错误,因此请一次审核一个。
首先,当您点击按钮时,onclick="myFunction()"
会运行myFunction
,但它不会运行函数中没有的行。您的随机化代码在函数之前,因此在页面加载时执行一次。
根据您放置该代码的位置(例如在头部的脚本标记中),该页面可能未加载。这意味着document.getElementById
函数将失败,因为尚未加载元素。这可能是它无法正常工作的另一个原因。
var x = document.getElementById("fontfamily").name;
document.getElementById('myFunction()').innerHTML = x;
这会尝试获取div的name属性。该div上没有name属性,因此会失败。接下来,您尝试获取id等于myFunction()
的元素。这没有任何意义。 myFunction()
不是元素的ID。我不知道你在尝试什么,所以我只是摆脱了大部分无用的代码。
这是解决方案,只需在函数内移动所需的代码即可完成。
var fontType = ["Arial", "Verdana", "Courier"];
function myFunction(e) {
document.getElementById("fontfamily").style.fontFamily = fontType[Math.floor(Math.random() * fontType.length)];
}
&#13;
<div id="fontfamily">test</div>
<button onclick="myFunction(event)">Try it</button>
&#13;