Javascript增加和减少按钮为2、5和10的倍数

Posted

技术标签:

【中文标题】Javascript增加和减少按钮为2、5和10的倍数【英文标题】:Javascript increase and decrease button to be multiple of 2, 5 and 10 【发布时间】:2019-12-15 08:14:31 【问题描述】:

我的 javascript 似乎无法正常工作。我的增加和减少按钮不起作用,我想知道如何使它们中的一些仅适用于 2、5 或 10 的倍数。(5 的倍数示例:我只能订购 5、10、15 .. 所以增加和减少按钮只能相应地添加。)

我有 7 种产品,都与这个相似,只是名称、价格和图片不同。

$('.like-btn').on('click', function() 
  $(this).toggleClass('is-active');
);

$('.minus-btn').on('click', function(e) 
  e.preventDefault();
  var $this = $(this);
  var $input = $this.closest('div').find('input');
  var value = parseInt($input.val());

  if (value > 1) 
    value = value - 1;
   else 
    value = 0;
  

  $input.val(value);

);

$('.plus-btn').on('click', function(e) 
  e.preventDefault();
  var $this = $(this);
  var $input = $this.closest('div').find('input');
  var value = parseInt($input.val());

  if (value < 100) 
    value = value + 1;
   else 
    value = 100;
  

  $input.val(value);
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="item">
  <div class="buttons">
    <span class="delete-btn"></span>
    <span class="like-btn"></span>
  </div>

  <div class="image">
    <img src="item-3.png"  />
  </div>

  <div class="description">
    <span>Super Star Destroyer</span>
    <span>Brown</span>
  </div>

  <div class="quantity">
    <button class="plus-btn" type="button" name="button">
      <img src="plus.svg"  />
    </button>
    <input type="text" name="name" value="1">
    <button class="minus-btn" type="button" name="button">
      <img src="minus.svg"  />
    </button>
  </div>

  <div class="total-price">$4570000</div>
</div>

【问题讨论】:

if (value &amp; amp; gt; 1) 应该是if (value &gt; 1) 只需将value + 1 更改为value + 5 以增加5。有什么问题? woha 抱歉,我编辑了 OP 的代码修复实体,请问有人可以取消吗? 你刚刚提出了一个编辑请求,我拒绝了它,但是有人批准了,所以需要再拒绝一次 @CalvinNunes 谢谢 【参考方案1】:

首先,修复语法错误:(value &amp; amp; lt; 100) 应该是(value &lt; 100)(value &amp; amp; gt; 1) 应该是(value &gt;= 1)

请记住,如果您将来从某个地方复制代码 sn-p,您应该在使用它之前尝试了解它的作用(每一行!)。

您可以在 html 中使用 &lt;input name="myName" type="number" step="5"&gt; 作为一种解决方案。这可能会帮助您以简洁的方式解决眼前的问题。

或者,在value = value + 1;value = value - 1; 的行中,您可以将1 更改为5(或在文件顶部定义一次名为STEP_SIZE 的常量)。这个策略可能会帮助你更多地了解 Javascript 并提高你的编程技能。

无论如何,祝你好运!

【讨论】:

仅仅对值进行更改并不能解决正在发生的语法问题。 (运行 OPs sn-p 来查看) 我认为语法错误可能是由于 (value &amp; amp; lt; 100) 而不是 (value &gt; 100) 但我无法编辑更改,因为其他编辑正在等待中,并且该编辑对于 是的,语法错误是这样的,我建议你在你的答案中添加这个修复(解释原因),让它更完整,我会投票赞成 @CalvinNunes 我认为这是 SO 粘贴的问题,但它实际上可能是主要问题。我已经在答案的顶部添加了这一点。

以上是关于Javascript增加和减少按钮为2、5和10的倍数的主要内容,如果未能解决你的问题,请参考以下文章

如何增加/减少点击 Js/ReactJs 中相同按钮的计数

JavaScript 增加按钮只增加一次

在 JavaScript 或 jQuery 中增加和减少数量时如何计算价格?

单击按钮时增加和减少值

当单击其他组件的按钮时,我想增加和减少数字

JavaScript 实现购物车