我正在制作一个我在高中玩的旧游戏的复制品,叫做药物战争。我有全局变量来保存每种药物的数量。最初我只是为每种药物的每次买卖操作使用不同的功能。试图为自己节省一些代码并提供一些扩展能力,我想将其更改为一个用于购买的函数,传递药物数量、药物价格(由不同的函数完成)和药物名称。
我坚持的部分是尝试将 drugqty(在函数中本地使用)更新为全局变量。
function buy(drugqty, drugprice, drugname)
{
if (money < drugprice)
{
window.alert("You do not have enough money to do that!")
}
else if(money >= drugprice)
{
var maxdrug = money/drugprice;
var addtoqty;
addtoqty=prompt("How many would you like to purchase? They are $" + drugprice +" a unit. You can afford " + Math.floor(maxdrug) + "." );
if((addtoqty*drugprice)>money)
{
window.alert("Nice try you need more money to do that!")
}
else {
drugqty = parseInt(drugqty, 10) + parseInt(addtoqty, 10);
money = money - (drugprice*addtoqty);
document.getElementById(drugname+"qty").innerHTML=drugqty;
document.getElementById("money").innerHTML=money;
}
}
}
下面是我购买一种特定药物的按钮。
<td><center><button onclick="buy(cocaineqty, cocaine, 'cocaine')">Buy</center></button></center></td>
按下按钮时,它会调用该函数并正确执行。
我只需要弄清楚如何使用局部函数 drugqty 创建的内容来更新全局变量 cocaineqty。
我尝试过类似的事情
drugname+"qty"=drugqty;
我的两个想法是从显示信息的位置再次解析该信息,或者以某种方式更新函数中的全局变量(将来再次将其用于一种以上的药物,以便可以动态完成)
<td id="cocaineqty" align="center">0</td>
我在这里的第一篇文章,但我非常愿意对文章进行更改或纠正任何错误。谢谢你的时间!
编辑:根据检查的答案更新了我的代码以获得正确的信息
function buy(drugqty, drugprice, drugname)
{
if (money < drugprice)
{
window.alert("You do not have enough money to do that!")
}
else if(money >= drugprice)
{
var maxdrug = money/drugprice;
var addtoqty;
addtoqty=prompt("How many would you like to purchase? They are $" + drugprice +" a unit. You can afford " + Math.floor(maxdrug) + "." );
if((addtoqty*drugprice)>money)
{
window.alert("Nice try you need more money to do that!")
}
else {
drugqty = parseInt(drugqty, 10) + parseInt(addtoqty, 10);
money = money - (drugprice*addtoqty);
document.getElementById(drugname+"qty").innerHTML=drugqty;
document.getElementById("money").innerHTML=money;
window[drugname+"qty"]=drugqty;
}
}
再次感谢您的所有帮助!