单击vanilla Javascript时将类减1

时间:2018-06-06 21:37:39

标签: javascript

我目前在2个按钮上有一个增量和减量方法。我的增量函数正好点亮但是我的Decrement方法失败了。我只想减去变量,所以一个例子就是如果我有这个类" move2"并解雇了我会得到的减量方法" move1"等等... d

有什么想法吗?

{{1}}

1 个答案:

答案 0 :(得分:1)

正如@MikeMcCaughan所提到的,您需要使用--i而不是i--来使用类名称上的递减值。此外,仅当div具有hasClasstrue类时,您当前的布尔变量class1才会返回class2class3及以上再次返回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/