我有以下getJSON
工作正常。我决定我希望能够根据用户选择的内容更改页面上显示的数据。我有一个功能,根据用户选择设置cookie。我想获取此cookie的值并使用它从JSON对象中获取特定值。
检索cookie的值并将其存储在cohort1
中。
$.getJSON('all_get_login.php?cat_code=stocks&sortvalue=value&sortorder=asc', function(data) {
$.each(data, function(key, val) {
if (val.value == "Yes") {
var cohort1 = readCookie('cohort_id_1');
console.log(cohort1); //gives expected result
var databaseYes = val.cohort1; //THIS LINE IS THE PROBLEM
var databaseNo = 100 - databaseYes;
$("#yes_stocks_db").append(databaseYes + "%");
$("#no_stocks_db").append(databaseNo + "%");
});
});
我的JSON对象如下所示:
[
{
"cat_code": "stocks",
"group": "fin",
"main_grouping": "Financial",
"highest_level": "Financial",
"category": "Invests in Stocks and Bonds",
"value": "No",
"database_percent": "38.90",
"cohort_1": "43.88",
"cohort_2": "27.66",
"national_percent": "30.16"
},
{
"cat_code": "stocks",
"group": "fin",
"main_grouping": "Financial",
"highest_level": "Financial",
"category": "Invests in Stocks and Bonds",
"value": "Yes",
"database_percent": "61.10",
"cohort_1": "56.37",
"cohort_2": "72.34",
"national_percent": "70.10"
}
]
问题出现了:在我的getJSON
中有var databaseYes= val.cohort1;
的行中,脚本正在寻找JSON对象中匹配" cohort1"的内容。 ,永远不会在对象中。我需要的是var cohort1
的值,而不是实际的文本" cohort1"。如何更改此行以适应该行?
答案 0 :(得分:2)
您可以使用[]
对象表示法将变量作为属性名称传递。
var cohort1 ='foo';
var databaseYes = val[cohort1];
这相当于val.foo