简单 JS/jQuery 多个递增和递减按钮

Simple JS/jQuery multiple increment and decrement buttons

我正在做一个个人项目,以帮助我更好地理解 JavaScript 和 jQuery。目前,我正在处理我项目的商店部分,并且 运行 变成了一堵墙。

我试图让我的按钮彼此独立地递增和递减输入,但它只更新第一个输入字段。

更新- HTML:

<div class="item">
  <div class="panel-body container">
    <h3>Empanada Gallega</h3>
      <p>A savory pie stuffed with Gallicain pork and peppers, onion and oregano.</p>
        <form>
          <div>
            <p class="total-price">.50</p>
            <div>
                <input type="button" class="plus-btn plusbtn btn" onclick="plus()">
            </div>

            <input type="text" value="QTY" id="count">

                <div>
                  <input type="button" class="minus-btn btn" onclick="minus()">
                </div>
            </div>
        </form> 
    </div>
</div>

<div class="item">
    <div class="panel-body">
        <h3>Lemon Soda</h3>
            <form>
                <div>
                    <p class="price">.00</p>
                    <div>
                      <input type="button" class="plus-btn plusbtn btn" onclick="plus()">
                    </div>

                    <input type="text" value="QTY" id="count">

                    <div>
                        <input type="button" class="minus-btn btn" onclick="minus()">
                    </div>
                </div>
            </form> 
        </div>
    </div>

JS:

 let count = 0;
 let countEl = document.getElementById("count");
 function plus(){
     count++;
     countEl.value = count;
 }
 function minus(){
   if (count > 1) {
     count--;
     countEl.value = count;
  }  
}

如果有人能帮我解释一下,那会很有帮助。

更新: 抱歉造成混乱。忘记添加第二项了。

我的目标是 increment/decrement 第二项与第一项分开。

我不知道你到底想实现什么,但我认为你在 minus() 函数中的 if() 语句有问题。它不应该检查是否 count > 1 以进行处理。 所以它应该看起来像:

function minus(){
    count--;
    countEl.value = count;
}

这里的问题可能是 countElcount 超出了您的功能范围。在每个函数中定义它们。

function plus(){
     countEl = document.getElementById("count");
     count = countEl.value;
     count++;
     countEl.value = count;
 }
 function minus(){
   countEl = document.getElementById("count");
   count = countEl.value;
   if (count > 1) {
     count--;
     countEl.value = count;
  } 
}

还要确保将文本框中的值设置为零或其他值

<input type="text" value="0" id="count">

您对所有项目使用了相同的全局变量"count",
所以页面上的每个 + / - 按钮都会影响相同的全局变量,并且它会显示在所有项目中。

您想做的是为每个对象存储一个计数器。
尝试存储单独的计数器,每个计数器一个。

( 在你弄清楚之后,我建议你尝试存储一个项目数组,每个项目都有自己的计数器,并动态地在 html 中显示它们,因为这将是实现这个的好方法,它将帮助您提高软件技能ᕕ( ᐛ )ᕗ )