使用Javascript变量从列表生成价格

时间:2010-11-23 18:12:04

标签: javascript jquery

我有一些变数:

var test1 = 1500;
var test2 = 500;
var test3 = 3000;
var test4 = 20000;

我有另一个这样的变量:

var list = 'test3,test1';

这显然不是固定的,因此可以是'test4,test1,test2'等。

现在,我需要一个价格变量。 test3+test1 = 4500

var price = '4500';

但我不知道该怎么做。以下是我到目前为止的情况:

var names = [];
$(':checkbox:checked').each(function() {
    names.push(this.name);
});
var list = names.join(',');

有什么想法吗?

3 个答案:

答案 0 :(得分:6)

您应该将变量更改为适当的对象:

var prices = {
    "test1": 1500,
    "test2": 500,
    "test3": 3000,
    "test4": 20000
}

现在你可以像这样添加:

var price = 0;
$(':checkbox:checked').each(function() {
    price += prices[this.name];
});
// The price variable now contains the sum

答案 1 :(得分:1)

根据您的方法,您可join使用' + '代替',',而只需eval结果(请参阅example)。

但是,最好以不需要使用eval的方式存储值,例如将它们存储为复选框的value,或者使用复选框名称之间的映射和值(与@ cdhowie的答案一样)

答案 2 :(得分:0)

您的“测试”价格应该在数组test[1] = 1500; test[2] = 500;等中。

然后不将数组加入字符串,

price = 0; 
for (i in list) { // assuming list is array of {3,1} not {test3,test1}
    price += test[list[i]];
}