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