我一直在寻找解决方案,但我似乎无法想出答案,所以希望有人可以提供帮助。
我将这个JSON字符串存储在cookie中,如下所示:
$.cookie('serviceTrip', JSON.stringify(serviceTrip));
我需要根据基于用户输入而变化的特定变量“n”从此cookie中提取值。 我所拥有的是:
var n = 3;
var serviceTripValues = JSON.parse($.cookie('serviceTrip'));
var serviceTripStartValue = 'serviceTrip'+n+'start';
alert(serviceTripStartValue); //this produces serviceTrip3start
alert(JSON.parse($.cookie('serviceTrip')).serviceTrip3start); // this produces 12:00 as expected
alert(JSON.parse($.cookie('serviceTrip')).serviceTripStartValue); // this produces 'undefined'
我无法弄清楚这一点......我认为这与serviceTripStartValue是一个字符串而不是一个对象这一事实有关,但我不知道如何解决它。
答案 0 :(得分:0)
试试这个 -
alert(JSON.parse($.cookie('serviceTrip'))[serviceTripStartValue]);
答案 1 :(得分:0)
您已经在解析cookie内容,无需执行两次:
alert(serviceTripValues[serviceTripStartValue]);
您尝试不起作用的原因是因为您将serviceTripValues
视为如此:
serviceTripValues = {
serviceTripStartValue:'12:00'
}
......事实上,就是这样:
serviceTripValues = {
serviceTrip3start:'12:00'
}
使用数组表示法允许JavaScript解释存储在String
中的serviceTripStartValue
,而不是将其视为文字对象键。
干杯