2012-06-11 95 views
4
{ 
"id":["123"], 
"optionid_123":"98" 
} 

我有id作爲一個變量,但我不知道怎麼能得到optionid_*?我嘗試了一些東西,但似乎沒有任何工作。 each位於相應的函數內部,jsonid包含正確的值。這是我在嘗試訪問不工作的價值98獲取JSON值動態

$.each(data.id,function(){ 
    var jsonid = this; 
    console.log(data.optionid_+jsonid); // doesn't work 
}); 

回答

9

您可以使用Bracket notation

console.log(data['optionid_' + jsonid]); 
+0

啊哈!我嘗試了一些括號記號,但由於某種原因稍微關閉了。乾杯。 – anotherdev

0

我覺得跟你data.id循環是不正確的。那是

$.each(data.id, function() {..}) 

不正確。

例如,如果你data看起來像以下:

var data = [{ 
"id":["123"], 
"optionid_123":"98" 
}, 
{ 
"id":["456"], 
"optionid_456":"99" 
}]; 

然後,你需要循環data並獲得您所需的性能。

$.each(data, function(index, val) { 
    var jsonid = val.id[0]; // as val.id is array so you need [0] to get the value 
    console.log(val['optionid_' + jsonid]); // bracket notation used 
}); 

DEMO