我有一些变数:
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(',');
有什么想法吗?
答案 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]];
}