你好,朋友们,我遇到了一个困难,我在我的二十一点游戏中有点不高兴我创建了图像(卡片),值来自对象列表中的 .PNG 名称。我想要做的是能够在这些图像上创建一个类,以便能够在其他函数中使用 classList.contain() 方法。它似乎有效,但每次调用该函数时数字都不会增加。所有卡片都具有相同的类别。
功能 showCard(activePlayer, card) {
if (activePlayer.score <= 20){
let cardImage = document.createElement("img")
function incrementNumber(number){
number = number++
return number
}
//increment the number of the class
cardImage.classList.add(`images${incrementNumber()}`)
cardImage.src = `images/${card}.png`
document.querySelector(activePlayer["div"]).appendChild(cardImage)
hitSound.play()
}
} 我知道我很可能忘记了一件简单的事情,但我无法解决它。我在 ${incrementNumber(1)} 中添加了一个数字,仍然为所有图像提供相同的图像类。谢谢你的帮助!
++(增量)运算符有时会令人困惑。
在您的情况下,您正在使用它,但您还将其返回值分配回数字。最简单的解决方案是不执行该任务(number = number++
仅更改为number++
)
看起来 number 应该是一个全局变量,而不是传递给 incrementNumber 函数的参数。
不过,这个问题更有趣的部分是为什么代码不起作用。这是由于 ++ 运算符的工作方式造成的。当你把它放在一个变量名(例如number++
)之后时,JavaScript 会有效地做到这一点:
var temp = number;
number = number + 1;
return temp;
它将 number 变量增加 1,但它返回变量的前一个值。在您的情况下,将number++
back的结果分配给时number
,增量操作将基本上被取消。
另请注意,您可以将 ++ 运算符放在变量名称之前(如++number
)。这不会返回变量的原始值,而是返回新的(增加的)值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句