你可以在 JavaScript 中使用递减/递增运算符但跳过 0 就像 continue 工作一样吗?

问题描述

我这里有一个数字计数器代码,它有递增和递减按钮。每当您单击按钮时,它都会执行递增和递减输入值的工作。

            // =number_counter
            function decrement(e) {
                const btn = e.target.parentNode.parentElement.querySelector(
                    'button[data-action="decrement"]'
                );
                const target = btn.nextElementSibling;
                let value = Number(target.value);
                value--;
                target.value = value;  
                toggleRowClass(btn,value,["bg-red-200","item-returned"]);  
            }

            function increment(e) {
                const btn = e.target.parentNode.parentElement.querySelector(
                    'button[data-action="decrement"]'
                );
                const target = btn.nextElementSibling;
                let value = Number(target.value);
                value++;
                target.value = value;
                toggleRowClass(btn,"item-returned"]);
            }

            const decrementButtons = document.querySelectorAll(
                `button[data-action="decrement"]`
            );

            const incrementButtons = document.querySelectorAll(
                `button[data-action="increment"]`
            );

            decrementButtons.forEach(btn => {
                btn.addEventListener("click",decrement);
            });

            incrementButtons.forEach(btn => {
                btn.addEventListener("click",increment);
            });

这一次,我想在单击输入值为 -11 的按钮时跳过 0。我可以在没有循环的情况下添加诸如 continue; 之类的行为而只有自增/自减运算符吗?

解决方法

Continue 在循环之外不存在。对您来说最简单的解决方案是在 increment/decrement 中添加一个条件,您可以在其中检查当前值是否为 -1/1 并在这些情况下添加其他逻辑:)

,

解决方案只是设置 value = 1 or value = -1;

function decrement(e) {
    const btn = e.target.parentNode.parentElement.querySelector(
        'button[data-action="decrement"]'
    );
    const target = btn.nextElementSibling;
    let value = Number(target.value);
    value--;

    if (value == 0) {
        value = -1;
        target.value = value;
    } else {
        target.value = value;
    }

    toggleRowClass(btn,value,["bg-red-200","item-returned"]);
}

function increment(e) {
    const btn = e.target.parentNode.parentElement.querySelector(
        'button[data-action="decrement"]'
    );
    const target = btn.nextElementSibling;
    let value = Number(target.value);
    value++;

    if (value == 0) {
        value = 1;
        target.value = value;
    } else {
        target.value = value;
    }

    toggleRowClass(btn,"item-returned"]);
}

对不起,我错过了。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...