在变量上使用.padStart吗?

时间:2018-07-15 21:09:54

标签: javascript html

我刚刚开始学习JavaScript,并且我了解一些有关JavaScript的知识。我尝试使用Math.random()和Math.round()来生成介于0到9999之间的数字,并且我也成功了,而且我也知道.padStart函数,所以我想我可以尝试制作一个PIN生成器来取乐

这是我的剧本。如果不好,我很抱歉,因为我是Java语言新手。 :P

 <center><button type="button" onclick="var random = Math.random();
    var number = Math.round(random * 9999)
    document.getElementById("pin").innerHTML = number.padStart(4, "0");">Generate!</button></center>
  <center><h3 id="pin"><font face="Verdana" color="white">####</font></h3></center>

我不认为.padStart适用于变量,并且在按下按钮时在控制台中出现此错误:

techguy201.github.io/:13未捕获的SyntaxError:输入意外结束

第13行是我的标签。

该网站位于Techguy201.github.io/pins 有人可以提供解决方法或解决我犯的错误吗?

2 个答案:

答案 0 :(得分:0)

从技术上讲,这可以解决您的问题,但是您绝对不要这样做。您的设置有些问题。

RewriteRule  "^/setting/(.*)$" "settings.php$1" [L, PT]

从技术上讲,这个问题是Escaping double quotes in JavaScript onClick event handler的重复,但是真正的问题是您试图直接在onclick处理程序中编写代码。直接在DOM中的这种Javascript样式已被放弃。对于这种特定情况,最简单的更改是在页面上添加 <center><button type="button" onclick="var random = Math.random(); var pin = Math.round(random * 9999); document.getElementById(&quot;pin&quot;).innerHTML = new String(&quot;0000&quot; + pin).slice(-4);">Generate!</button></center> 标签,并在其中编写Javascript。

<script>

答案 1 :(得分:0)

您是否尝试过substring方法?

JS:

var random = Math.random();
var number = Math.round(random * 9999)
document.getElementById('pin').innerHTML = number.substring(0, 4);  

还要注意,在您的代码中,"属性和JS使用了onclick。当您拥有...document.getElementById("...时,"结束了onclick属性。如果您要在属性中使用",请使用\"'避免这样的错误(例如我的回答)。另外请注意,如果您要在脚本标签或.js文件中编写JS,则不要这样做,因为这是不必要的。