好的,所以我到处搜索,找不到任何帮助。我有六个不同的单个模具图像。每次用户单击按钮时,图像都会发生变化。但是,我需要保持一个总计,这就是我被困住的地方。
<html>
<head>
</head>
<body>
<script>
function displaydie()
{ var total=0;
var num= ("src",(Math.floor(Math.random()*6)+1) + ".jpg")
document.getElementById("die").setAttribute("src",(Math.floor(Math.random()*6)+1) + ".jpg")
}
</script>
<img id="die" alt="die"/>
<br/>
<input type="button" value="Click me!" onclick="displaydie()"/>
<span id="total"/></span>
</body>
</html>
答案 0 :(得分:0)
如果您需要知道每个卷,请使用数组。
var rolls = [];
//When rolled, do:
rolls.push(<roll value>);
如果您只需要一个总数,那么只需添加一个整数?
var total = 0;
//When rolled, do:
total += <value>;
如果没有更详细的信息,很难给出一个好的建议。
修改强> 好的......这听起来像是一个项目/任务,所以我只是试着引导你朝着正确的方向前进。
如果您需要担心的是总数,那么就不需要数组了。
您已经声明了总变量,因此这很好。
在displaydie
函数中,我建议您首先声明一个变量并为其分配随机(1-6)数字。然后将该数字添加到总数中,然后使用它来设置图像的来源。
要显示您的总计,您需要获得&#34;总计&#34;通过使用它的ID,然后设置值(可能通过innerText属性) - 删除你有的document.write调用。
听起来你需要添加&#34;重置&#34;按钮也将总数设置为0。
for ...
循环不是定时函数 - 它会尽可能快地执行。因此,请确保您想要的是什么,或者您想要setTimeout
或setInterval
之类的内容。如果for循环 是您想要的,那么请考虑在此期间不更改图像源,因为它无法以足够快的速度更新以便无论如何都能看到。
答案 1 :(得分:0)
这是你已经开始的一段有趣的代码...我通过它来理解它,但我会给你一些指示,除非你不能得到你自己。
首先,当你完成这项工作时,你应该进行一些检查。虽然大多数人更喜欢使用alert(variable)
,但console.log(variable)
很简单。如果你试试console.log(num)
,你会发现一个非常有趣的结果。您可能希望num
等于骰子卷,然后将变量放入setAttribute
。
另一件事是,document.write
将完全覆盖您在该页面上拥有的所有内容。尝试设置value
"total"
的{{1}}。
现在,在我阅读本文时,我认为您的span
循环将进行测试,以确保运行总计正在累积。你必须在这里理解的是,当你掷骰子时,你不会增加总数。您也不会将总数写入您的文档。您可能想尝试将这些添加到函数中,以便只需单击一下即可处理所有内容。
如果您真的遇到问题,可以多做一点,然后问我,我会给你编辑的代码。
答案 2 :(得分:0)
<!DOCTYPE html>
<html>
<head>
<script>
var total=0;
function displaydie()
{
var diceNumberArray = [1,2,3,4,5,6];
var showImageDice = Math.floor((Math.random()*diceNumberArray.length)+1);
var sideToShow = "Image"+showImageDice;
total += showImageDice;
document.getElementById("total").innerHTML = total;
document.getElementById("die").setAttribute("src",sideToShow+".jpg");
}
</script>
</head>
<body>
<img id="die" alt="die"/>
<br/>
<input type="button" value="Click me!" onclick="displaydie()"/>
<span id="total"/></span>
</body>
</body>
</html>