j查询变量的总和

jQuery sum of variables

本文关键字:变量 查询      更新时间:2023-09-26

我有一个工作JS,它检查是否选中了不同的复选框,并为每个复选框指定不同的价格,稍后将汇总。

function priceCandy1() {
    var priceCandy1 = 0;
    var candy = document.getElementById("candy1");
    if(candy.checked==true)
    {
       priceCandy1=13;
    }
    return priceCandy1;
}
function calculateTotal()
{
    var totalPrice = priceCandy1() + priceCandy2() + priceCandy3();
    document.getElementById('totalid').innerHTML = "$" + totalPrice; 
}

现在我正试图在jQuery中编写等效的代码,这个函数确实有效:

$(function () {
    var priceCandy1 = 0;
    var candy = $('#candy1');
    $('#candy1').on('click',function () {
        if (candy.is(':checked')) {
            priceCandy1 = 13;
        } 
    });
    return priceCandy1;
});

但我无法将返回的价格抓取到一个将每个价格相加的函数Candy#中。超出范围,但我不知道如何修复。

如果像您所说的那样是范围问题,您可以在函数外将priceCandy1声明为全局变量。

var priceCandy1;
$(function () {
    priceCandy1 = 0;
    var candy = $('#candy1');
    $('#candy1').on('click',function () {
        if (candy.is(':checked')) {
            priceCandy1 = 13;
        } 
    });
});

然后在totalPrice函数中使用priceCandy1,它应该能够获取它。

将它们封装在同一函数中:

$(function () {
    var priceCandy1 = function() {
        if($('#candy1').is(':checked')) {
           return 13;
        }
        return 0;
    },
    calculateTotal = function()
    {
        var totalPrice = priceCandy1() + priceCandy2() + priceCandy3();
        $('#totalid').text('$' + totalPrice); 
    };
    calculateTotal();
});