我需要在 classList 模板字符串 javascript 中递增一个数字
i need to increment a number in a classList template string javascript
你好,朋友们,我遇到了一个难题,我有点不知所措
在我的二十一点游戏中,我创建了(纸牌的)图像,值来自对象列表中的 .PNG 名称。我想要做的是能够在这些图像上创建一个 class 以便能够在其他函数中使用 classList.contain() 方法。它似乎有效,但每次我调用该函数时数字都不会增加。所有卡片都具有相同的 class.
函数 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)} 中添加了一个数字,仍然为所有图像提供相同的图像 class。谢谢你的帮助!
将全局变量添加到名为 number 的范围并将其设置为 1。然后将 number = number++
替换为 number++
.
++(递增)运算符有时会令人困惑。
在您的例子中,您正在使用它,但您也将其 return 值分配回数字。最简单的解决方案是不进行该分配(将 number = number++
更改为 number++
)
看起来 number 应该是一个全局变量,而不是传递给 incrementNumber 函数的参数。
这个问题更有趣的部分是为什么代码不起作用。这是由于 ++ 运算符的工作方式。当你把它放在变量名之后时(例如 number++
),JavaScript 将有效地做到这一点:
var temp = number;
number = number + 1;
return temp;
它将 number 变量递增 1,但它 return 是变量的先前值。你的情况,当把number++
的结果赋值给number
的时候,自增操作基本上就被抵消了。
另外,请注意您可以将 ++ 运算符放在变量名之前(如 ++number
)。这不会 return 变量的原始值,而是 return 新的(增加的)值。
你好,朋友们,我遇到了一个难题,我有点不知所措 在我的二十一点游戏中,我创建了(纸牌的)图像,值来自对象列表中的 .PNG 名称。我想要做的是能够在这些图像上创建一个 class 以便能够在其他函数中使用 classList.contain() 方法。它似乎有效,但每次我调用该函数时数字都不会增加。所有卡片都具有相同的 class.
函数 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)} 中添加了一个数字,仍然为所有图像提供相同的图像 class。谢谢你的帮助!
将全局变量添加到名为 number 的范围并将其设置为 1。然后将 number = number++
替换为 number++
.
++(递增)运算符有时会令人困惑。
在您的例子中,您正在使用它,但您也将其 return 值分配回数字。最简单的解决方案是不进行该分配(将 number = number++
更改为 number++
)
看起来 number 应该是一个全局变量,而不是传递给 incrementNumber 函数的参数。
这个问题更有趣的部分是为什么代码不起作用。这是由于 ++ 运算符的工作方式。当你把它放在变量名之后时(例如 number++
),JavaScript 将有效地做到这一点:
var temp = number;
number = number + 1;
return temp;
它将 number 变量递增 1,但它 return 是变量的先前值。你的情况,当把number++
的结果赋值给number
的时候,自增操作基本上就被抵消了。
另外,请注意您可以将 ++ 运算符放在变量名之前(如 ++number
)。这不会 return 变量的原始值,而是 return 新的(增加的)值。