jQuery变量之和

时间:2015-12-13 00:11:10

标签: javascript jquery

我有这个工作的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;
});

但是我不能把退回的价格拿到一个将每个priceCandy#加起来的函数中。超出范围,但我不知道如何解决它。

2 个答案:

答案 0 :(得分:0)

如果这是你所说的范围问题,你可以在函数外部声明priceCandy1作为全局变量。

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

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

答案 1 :(得分:0)

将它们包裹在同一个函数中:

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

    calculateTotal();
});