2016-03-03 102 views
3

有没有将2个变量合并为1的方法?jQuery将2个变量合并为1个

我需要每一个“兑换优惠券按钮”被按下

我有以下瓦尔时间复位输入值:

var buttonColor = $(this).attr('class'); 

var goldOriginalTotal = '$3916.64'; 
var silverOriginalTotal = '$1396.64'; 
var bronzeOriginalTotal = '$724.64'; 

buttonColor会给我金,银,铜牌。我想用它来调用goldOriginalTotal,silverOriginalTotal或bronzeOriginalTotal。

我想如下使用它,但我不认为这是可能:(

$(this).find('input.' + buttonColor).text(buttonColor + OriginalTotal); 

buttonColor + OriginalTotal应等于goldOriginalTotal应打印出$3916.64

回答

4

在这种情况下,将最好有三个变量你现在作为一个对象的属性是由期望的类名键控。试试这个:

var buttonColor = $(this).attr('class'); 
var originalTotal = { 
    gold: '$3916.64', 
    silver: '$1396.64', 
    bronze: '$724.64' 
}; 
$(this).find('input.' + buttonColor).text(originalTotal[buttonColor]); 

你目前正在尝试做什么,buttonColor + OriginalTotal导致字符串连接。您可以使用eval以编程方式按名称访问变量,但这样做被认为是可怕的做法。上述解决方案是首选的方法。

+0

是的谢谢队友我怀疑我想做的事情是非常可怕的。感谢您向我展示更好的方式。 –

+0

诅咒我的金属身体。我速度不够快。 – twernt

+0

@twernt你虽然接近,但:) –

1

您可以连接您的值以获取对象成员。

var buttonColor = $(this).attr('class'); 

var originalTotals = { 
    gold: '$3916.64', 
    silver: '$1396.64', 
    bronze: '$724.64', 
} 

$(this).find('input.' + buttonColor).text(originalTotals[buttonColor]);