增量和减量百分比

时间:2018-02-23 08:28:59

标签: jquery

我正在研究一个简单的计数器,它增加和减少1取决于它选择的操作。我的问题是,当我尝试转换为默认值为0.1%的百分比时,它会增加或减少0.1%。

柜台不再起作用了。

谢谢,希望你能理解我。

CODEPEN

var $input = $(".counter-percentage input");

$input.val(1);

$(".counter-percentage .operation").click(function() {
  if ($(this).hasClass('add'))
    $input.val(parseInt($input.val()) + 1);
  else if ($input.val() >= 2)
    $input.val(parseInt($input.val()) - 1);
});
ul li {
  float: left;
  list-style-type: none;
  border-top: 1px solid rgba(247, 204, 131, 0.3);
  border-right: 1px solid rgba(247, 204, 131, 0.3);
  border-bottom: 1px solid rgba(247, 204, 131, 0.3);
  height: 20px;
  text-align: center;
}

ul li:first-child {
  border: 1px solid rgba(247, 204, 131, 0.3);
  width: 20px;
}

ul li:nth-child(2) {
  width: 75px;
}

ul li:last-child {
  width: 20px;
}

ul li input {
  width: 100%;
  border: none;
  outline: none;
  text-align: center;
}

ul li.operation {
  cursor: pointer;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="counter-percentage">
  <li class="operation minus">-</li>
  <li>
    <span class="value"></span>
    <input type="text" name="" readonly>
  </li>
  <li class="operation add">+</li>
</ul>

2 个答案:

答案 0 :(得分:2)

您只需将0.x%转换为0.x,然后将此值与相应的增量和减量进行比较。而不是parseInt()我使用+一元运算符将字符串转换为数字,因为parseInt将使0.1到0。

var $input = $(".counter-percentage input");

$input.val("0.1%");

$(".counter-percentage .operation").click(function() {
  var val = +$input.val().replace("%", "");
  console.log(val);
  if ($(this).hasClass('add'))
    $input.val(Math.round((val + 0.1)*10)/10+'%');
  else if (val >= 0.2)
    $input.val(Math.round((val - 0.1)*10)/10+'%');
});
ul li {
  float: left;
  list-style-type: none;
  border-top: 1px solid rgba(247, 204, 131, 0.3);
  border-right: 1px solid rgba(247, 204, 131, 0.3);
  border-bottom: 1px solid rgba(247, 204, 131, 0.3);
  height: 20px;
  text-align: center;
}

ul li:first-child {
  border: 1px solid rgba(247, 204, 131, 0.3);
  width: 20px;
}

ul li:nth-child(2) {
  width: 75px;
}

ul li:last-child {
  width: 20px;
}

ul li input {
  width: 100%;
  border: none;
  outline: none;
  text-align: center;
}

ul li.operation {
  cursor: pointer;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="counter-percentage">
  <li class="operation minus">-</li>
  <li>
    <span class="value"></span>
    <input type="text" name="" readonly>
  </li>
  <li class="operation add">+</li>
</ul>

答案 1 :(得分:0)

使用此关键字而不是dom

的直接加肥输入

$(本).closest(&#39; .closest-祖先&#39)

以这种方式,impect将仅限于当前值