jQuery从2个函数更新值

时间:2014-04-13 05:17:02

标签: jquery

该产品的基本价格为186。

然后有4种运输方式

如果他们想要一个盒子,还有一个复选框。 盒子(价格+25) nobox(价格保持不变)

我的代码:

var total= 186;

$( "select#shipping" ).change(function() {
    var str = "";
    var total= 186;
    $( "select#shipping option:selected" ).each(function() {
        str += $( this ).val() + " ";
    });

    str = str.substr(1);
    total= total+ parseInt(str);
    document.getElementById("celkem").innerHTML=celkem;
}).trigger( "change" );

$('#box').change(function(){
    var c = this.checked ? 25 : -25;
    celkem = $("#total").text();
    document.getElementById("total").innerHTML = parseInt(total) + c;
});

我似乎无法得到它的核心更新。现在的问题是,框复选框默认关闭。假设我选择购物#1,然后选中此框。总数是253.但是当我现在选择#2运输时,#box保持检查状态并且不会增加25个。

你能帮帮我吗?

1 个答案:

答案 0 :(得分:0)

如果您尝试添加多个送货号码,那么您需要像这样单独解析和求和:

var shippingTotal = 0;
$( "select#shipping option:selected" ).each(function() {
    shippingTotal += parseInt($( this ).val(), 10);
});

而不是仅将所有字符串添加到一起,然后尝试一次解析所有字符串。然后,您可以将该送货号码添加到任何其他号码以获得总数。

看起来你的总数也有问题因为你似乎没有重新启动它,但是每次调用.change()时你都会添加更多,这可能不是你想要的它会上升和上升。你没有显示你的HTML,所以我们很难确切知道你应该在那里做什么,但目前的算法看起来有问题。