javascript - jQuery 数学不工作

标签 javascript jquery

<分区>

我正在尝试做数量系统,我的代码是:

    <div class="sp-quantity">
        <div class="sp-minus fff"> <a class="ddd" href="#">-</a></div>
        <div class="sp-input">
            <input type="text" class="quntity-input" value="1">
        </div>
        <div class="sp-plus fff"> <a class="ddd-plus" href="#">+</a></div>
    </div>
    <script>
    $('.ddd-plus').click(function(){
        var $old = $('.quntity-input').val();
        var $plus =($old +1);
        // var $minus = $old - 1;
        $('input').val($plus);
        console.log($plus,$old);
    });
    </script>
<style>.sp-quantity {
    width:124px;
    height:42px;
    font-family:"ProximaNova Bold", Helvetica, Arial;
}
.sp-minus {
    width:40px;
    height:40px;
    border:1px solid #e1e1e1;
    float:left;
    text-align:center;
}
.sp-input {
    width:40px;
    height:40px;
    border:1px solid #e1e1e1;
    border-left:0px solid black;
    float:left;
}
.sp-plus {
    width:40px;
    height:40px;
    border:1px solid #e1e1e1;
    border-left:0px solid #e1e1e1;
    float:left;
    text-align:center;
}
.sp-input input {
    width:30px;
    height:34px;
    text-align:center;
    font-family:"ProximaNova Bold", Helvetica, Arial;
    border: none;
}
.sp-input input:focus {
    border:1px solid #e1e1e1;
    border: none;
}
.sp-minus a, .sp-plus a {
    display: block;
    width: 100%;
    height: 100%;
    padding-top: 5px;
}
</style>

(顺便说一句,只有当我将 jquery 放到控制台时,这段代码才有效,否则它不起作用。

所以当我点击加号时,它应该将输入的值加 1(例如:如果输入的值是 1,它应该是 2 但它变成了 11)

我该如何解决?谢谢

最佳答案

您必须使用 unary 运算符强制结果为数字。

var $plus = +$old + 1;

另一种解决方案是使用parseInt 方法。

var $plus =parseInt($old,10) + 1;

解决方案

$('.ddd-plus').click(function(){
        var $old = $('.quntity-input').val();
        var $plus =+$old +1;
        $('input').val($plus);
    });
$('.ddd-minus').click(function(){
        var $old = $('.quntity-input').val();
        var $plus =$old -1;
        if($plus<0){
          return;
        }
        $('input').val($plus);
});
.sp-quantity {
    width:124px;
    height:42px;
    font-family:"ProximaNova Bold", Helvetica, Arial;
}
.sp-minus {
    width:40px;
    height:40px;
    border:1px solid #e1e1e1;
    float:left;
    text-align:center;
}
.sp-input {
    width:40px;
    height:40px;
    border:1px solid #e1e1e1;
    border-left:0px solid black;
    float:left;
}
.sp-plus {
    width:40px;
    height:40px;
    border:1px solid #e1e1e1;
    border-left:0px solid #e1e1e1;
    float:left;
    text-align:center;
}
.sp-input input {
    width:30px;
    height:34px;
    text-align:center;
    font-family:"ProximaNova Bold", Helvetica, Arial;
    border: none;
}
.sp-input input:focus {
    border:1px solid #e1e1e1;
    border: none;
}
.sp-minus a, .sp-plus a {
    display: block;
    width: 100%;
    height: 100%;
    padding-top: 5px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="sp-quantity">
        <div class="sp-minus fff"> <a class="ddd-minus" href="#">-</a></div>
        <div class="sp-input">
            <input type="text" class="quntity-input" value="1">
        </div>
        <div class="sp-plus fff"> <a class="ddd-plus" href="#">+</a></div>
    </div>

关于javascript - jQuery 数学不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45633976/

相关文章:

javascript - 将 JavaScript 对象转换为 JSON 并 POST 它

javascript - Jquery isNumeric 负零给出真实结果

javascript - 使用jquery生成html表时设置下拉选择值

javascript - 通过 javascript 传递变量但在 php 中未获取它?

javascript - 在 React js 中使用 Reactstrap 从多个选择下拉列表中动态选择选项

javascript - 如何正确扩展 JS 对象?

javascript - 如果重新打开选项卡则重新加载页面

javascript - html+javascript : How to disable null option in dropdownlist on some condtition

php - 将 PHP URL 变量传递给 jquery/ajax 表单

javascript - 让用户使用鼠标选择伪元素