我有这个工作的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#加起来的函数中。超出范围,但我不知道如何解决。

最佳答案

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

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


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

08-07 18:54