我想要达到的目的是:
var price = $.cookie('cur_price'); //this is USD, EUR or GBP
var price = 'USD'; //this could be an outcome
var USD = 30; //to put this in a array
var EUR = 24; //seems the right way
var GBP = 30;
var active = Get from array the value where price == array value
$('#price').html(active);
你怎么能用jQuery做到这一点?
答案 0 :(得分:3)
创建一个类似于关联数组的对象来存储价格:
var price = $.cookie('cur_price'); //this is USD, EUR or GBP
var prices = {
'USD': 30,
'EUR': 24,
'GBP': 30
};
$('#price').html(prices[price]);
答案 1 :(得分:1)
我不使用数组,而是使用对象文字,因为它允许您将键映射到值,而不是任意数组索引。
var price = $.cookie('cur_price');
var map = {
USD: 30,
EUR: 24,
GBP: 30
};
var active = map[price];
$('#price').html(active);
此外,要考虑尚未设置cur_price
的情况(首次访问?),您可能需要提供默认值:
var price = $.cookie('cur_price');
var map = {
USD: 30,
EUR: 24,
GBP: 30
};
if (price == null) {
price = 'GBP';
}
var active = map[price];
$('#price').html(active);
此外,请注意,客户端可以自由编辑JavaScript;你应该验证服务器上的所有输入(特别是涉及金钱的时候!)。
答案 2 :(得分:0)
var cookie = 'EUR';
var USD = 30; //to put this in a array
var EUR = 24; //seems the right way
var GBP = 30;
var active;
switch(cookie) {
case 'EUR':
active = EUR;
break;
case 'USD':
active = USD;
break;
case 'GBP':
active = GBP;
break;
default:
active = -1; // maybe?
break;
}
$('#price').html(active);