JS按钮 - 随机字体

时间:2015-04-15 15:29:54

标签: javascript button

<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>

1 个答案:

答案 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。我不知道你在尝试什么,所以我只是摆脱了大部分无用的代码。

这是解决方案,只需在函数内移动所需的代码即可完成。

&#13;
&#13;
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;
&#13;
&#13;