2013-06-13 98 views
0

我需要在此脚本中将OptionPricing变量添加到var AccompPricing中的2:258。我想写这样的2:258 +(var Price),但它不能这样工作。总包应该被添加到第二个选择值。例如:258 +包裹的价格=总计#2。在Javascript中添加一个返回变量到一个数字

// Collect Data & Prices To Update Dynamic Prices 

var OptionPricing = { 

'pack11049': 1049, 
'pack21199': 1199, 
'pack31199': 1199, 
'pack41299': 1299, 
'pack51449': 1449, 
'pack61499': 1499, 
'pack71549': 1549, 
'pack81699': 1699, 
'pack91799': 1799, 
'pack101999': 1999, 
'pack112499': 2499, 
'pack122549': 2549 


}; 


function checkOptions() { 

var Price = 0; 

for (Packs in OptionPricing) { 

    if ($('#' + Packs).is(':checked')) {   
     Price += OptionPricing[Packs]; 
    } 
} 

return Price; 
} 
var AccompPricing = { 
0: 0, 
1: 129, 
2: 258 + (var Price), 
3: 1057, 
4: 1856  
}; 

function checkAccomp() { 

var Accomp = parseInt($('#howmany').val(), 10); 

return AccompPricing[Accomp]; 
} 

function updateTotal() { 

var ThePrice = checkOptions() + checkAccomp(); 


$('#TotalPrice').text('$' + ThePrice + '.00'); 

} 

$(function() { $('.DoPricing').click(updateTotal); }); 
+0

真的很难说出你想要做什么。 **当**是否要将'价格'添加到'AccompPricing [2]'?因为'updateTotal'已经基本做到了。它从'checkOptions'获取价格并将其添加到'AccompPricing'的相应索引中。因此,从'AccompPricing'对象初始化器中删除'+ var Price'似乎就足够了。因此,为什么你认为你想要什么,或者你想做什么,这真的不清楚。 –

+0

那么这就是我想要完成的。 OptionsPricing保存我们的称为PACKAGES的单选按钮的最终值。 AccompPricing拥有额外的价值,我们将称之为占用价格。但仅限于第二名乘客#2(2:258)258美元,我们希望向他们收取全套价格,但不包括#3或#4。 #1已经收到了全额费用,但是如果有第二位乘客,我们需要再次增加全价!合理? –

+0

不是,不。 :-)所以你想根据'AccompPricing'中的哪个入口使用'checkOptions'的结果做些什么? –

回答

1

这听起来像你需要的条目标志在你AccompPricing对象来告诉你你是否添加再次包的价格。 东西是这样的:Live Copy | Live Source

// Collect Data & Prices To Update Dynamic Prices 

var OptionPricing = { 

    'pack11049': 1049, 
    'pack21199': 1199, 
    'pack31199': 1199, 
    'pack41299': 1299, 
    'pack51449': 1449, 
    'pack61499': 1499, 
    'pack71549': 1549, 
    'pack81699': 1699, 
    'pack91799': 1799, 
    'pack101999': 1999, 
    'pack112499': 2499, 
    'pack122549': 2549 
}; 

var AccompPricing = { 
    0: {Price: 0,  Flag: false}, 
    1: {Price: 129, Flag: false}, 
    2: {Price: 258, Flag: true}, 
    3: {Price: 1057, Flag: false}, 
    4: {Price: 1856, Flag: false} 
}; 

function checkOptions() { 

    var Price = 0; 

    for (Packs in OptionPricing) { 

     if ($('#' + Packs).is(':checked')) {   
      Price += OptionPricing[Packs]; 
     } 
    } 

    return Price; 
} 

function checkAccomp() { 

    var Accomp = parseInt($('#howmany').val(), 10); 

    return AccompPricing[Accomp]; 
} 

function updateTotal() { 

    var PackagePrice, Accomp, ThePrice; 

    PackagePrice = checkOptions(); 
    Accomp = checkAccomp(); 
    ThePrice = PackagePrice + Accomp.Price; 
    if (Accomp.Flag) { 
     ThePrice += PackagePrice; 
    } 

    $('#TotalPrice').text('$' + ThePrice + '.00'); 
} 

$(function() { $('.DoPricing').click(updateTotal); }); 

附注:我试图使用大小写形式在上面。仅供参考,它是非常有用在JavaScript中对于除globals之外的任何内容都使用最初的变量名称。

+0

我试图复制和粘贴var AccompPricing你有我的替换,它并没有给出总数。嗯? –

+0

@PhilMulkins:你不能只抓住部分解决方案,并期望它的工作。您如何使用'AccompPricing'中的条目也会发生变化。 –

+0

它看起来像是可以工作的东西,但它只是没有给出总数。 #2需要双倍的OptionsPricing,所以你就在那里,但不输出总数。 –

相关问题