我目前在2个按钮上有一个增量和减量方法。我的增量函数正好点亮但是我的Decrement方法失败了。我只想减去变量,所以一个例子就是如果我有这个类" move2"并解雇了我会得到的减量方法" move1"等等... d
有什么想法吗?
{{1}}
答案 0 :(得分:1)
正如@MikeMcCaughan所提到的,您需要使用--i
而不是i--
来使用类名称上的递减值。此外,仅当div具有hasClass
或true
类时,您当前的布尔变量class1
才会返回class2
。 class3
及以上再次返回false
。
您可以使用indexOf()来检查元素类名称而不是使用contains()
,如果它返回true,则可以使用.classList.replace()
方法将类名更新为递减值。
const decrement = (div) => {
let className = document.getElementById('x').getAttribute("class"); // get element class value
let hasClass = className.indexOf('move') >= 0; // returns true if class value has "move" in it
if(hasClass === true)
document.getElementById('x').classList.replace((className),("move" + --i)); // replace the class value with the decremented class name
}
js使用上述方法:https://jsfiddle.net/AndrewL64/rdjv5hsm/11/
此外,如果您想将减量上限设为0,则可以编辑if条件:
if(hasClass === true) {
document.getElementById('x').classList.replace((className),("move" + --i));
}
要:
if(hasClass === true && i > 0) {
document.getElementById('x').classList.replace((className),("move" + --i));
}
jsFiddle with decrement capping:https://jsfiddle.net/AndrewL64/rdjv5hsm/14/