提取文本和计算div值是错误的。

时间:2015-02-23 09:37:19

标签: jquery

http://jsfiddle.net/5axh3xzs/33/

物品的价格是20。 当我点击加号3次时,物品的价格显示为120而不是60

请让我知道我在哪里做错了

这是我的代码

http://jsfiddle.net/5axh3xzs/33/

$(document).on('click', '.icon-plus', function (e) {
var value = parseInt($(this).closest('div').find('.QtyInput').val());
    $(this).closest('div').find('.QtyInput').val(value+1);

    if(value>0)
    {
    var currentsellprice =  parseInt($(this).closest('.lastItm_Wrap').find('.Itm_right_aside .sellprice').text());
    var currentquantity =parseInt($(this).closest('div').find('.QtyInput').val());
    $(this).closest('.lastItm_Wrap').find('.Itm_right_aside .sellprice').text(currentsellprice*currentquantity);
    }
});
你可以告诉我我在哪里做错了吗?

2 个答案:

答案 0 :(得分:1)

您每次都会乘以计算出的值。

以下内容将解决您的问题:

$(this).closest('.lastItm_Wrap').find('.Itm_right_aside .sellprice').text((currentsellprice / (currentquantity - 1))*currentquantity);

有了它,你重新计算"基本卖价"。

但这个解决方案并不是很好。最好将基本价格存储在自己的div中并打印基本价格和计算的总价格。

答案 1 :(得分:0)

您需要有办法存储Item Price

我使用data元素中的<h3>属性为Item2存储了它。

Updated Working jsFiddle

您可以对其他项目执行相同的操作。

JS:

$(document).on('click', '.icon-minus', function (e) {
    var value = parseInt($(this).closest('div').find('.QtyInput').val());
    if(value>=1)
    {
        $(this).closest('div').find('.QtyInput').val(value-1);
    }
});

$(document).on('click', '.icon-plus', function (e) {
    var value = parseInt($(this).closest('div').find('.QtyInput').val());
    $(this).closest('div').find('.QtyInput').val(value+1);

    if(value>0)
    {
        var currentsellprice =  parseInt($(this).parent().prev().data('price')); // get the data "price" of item
        console.log("currentsellprice = " + currentsellprice);
        var currentquantity =parseInt($(this).closest('div').find('.QtyInput').val());
        console.log("currentquantity = " + currentquantity);
        $(this).closest('.lastItm_Wrap').find('.Itm_right_aside .sellprice').text(currentsellprice*currentquantity);
    }
});