我最近做了一个骰子游戏。我向别人请教如何建立一个功能按钮,并且能够制作出来。现在我想让它的每个结果都能替换之前的输出,这样我就可以反复掷骰子,但每次只能在页面上掷一个骰子(所以不是一个掷骰子的列表)。
请告诉我,我下面的代码做错了什么,因为我查了一下.replace,在我看来它应该可以工作。
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>My own personal Dice Roll</title>
<script src="dice.js"></script>
</head>
<body>
<button onclick="diceRoll();" id="roll">Throw Dice</button>
<h2>Dice Game:</h2>
<div id= "output"></div>
</body>
</html>
JS
function diceRoll() {
const value = [ 1, 2, 3, 4, 5, 6 ];
let random = Math.floor(Math.random() * value.length + 1);
let roll = `You rolled: ${random}`;
output(roll);
}
function output(message) {
document.getElementById('output').innerHTML += roll.replace(message + '<br/><br/>');
}
改变
document.getElementById('output').innerHTML += roll.replace(message + '<br/><br/>');
到
document.getElementById('output').innerHTML = message;
你不能参考 roll
从内 output
功能。它不存在于那里。它存在于 diceRoll
函数,并将其值传递给 output
作为 message
所以你把这个值称为 message
在 output
功能。
x += y
是 x = x + y
意思是你要加 y
到 x
. 如果你想覆盖这个值,你只需使用 =
.
该 取代法 是不同的。要使用替换方法,你需要三样东西。你需要一个你感兴趣的字符串。然后你需要另一个你想在第一个字符串中搜索的字符串。然后,如果你在第一个字符串中找到了第二个字符串,你需要第三个字符串来替换它。它的工作原理是这样的。
var interestingString = "i hate js";
var searchString = "hate";
var replaceString = "love";
console.log( interestingString.replace(searchString, replaceString) );
你可以用这种方法来完成你想做的事 但这样做就太夸张了。会是这样的。
document.getElementById('output').innerHTML = document.getElementById('output').innerHTML.replace(document.getElementById('output').innerHTML, message);