2012-11-07 89 views
0

我無法訪問使用在JavaScript變量的特定對象。以下是我正在使用的代碼:訪問JS對象具有可變

global_grouplist = getTenantGroupList(); 
console.log(global_grouplist) 
var currentgroup = getSelectedGroupName(); 
console.log(currentgroup) 
console.log(global_grouplist.currentgroup); 

'global_grouplist'返回大量對象,我想從中獲取特定值。如果我將當前組的值等於,並運行它像這樣:

console.log(global_grouplist.actualvalue) 

它給了我我想要的。但是,當我這樣做。

var currentgroup = actualvalue 
console.log(global_grouplist.currentgroup) 

這是getTenantGroupList()函數:

function getTenantGroupList(){ 
    return jQuery.parseJSON($.ajax({ 
      url: 'tenantgrouplist.json', 
      dataType: 'json', 
      async: false 
    }).responseText); 
} 

這裏是getSelectedGroupName功能:

function getSelectedGroupName(){ 
     var retval = null; 
     $('#grouplist li a').each(function(){ 
      if($(this).parent().hasClass('group-selected')) 
       retval=$(this).html(); 
     }); 
     return retval; 
    } 

它不工作。我在這裏錯過了一些基本的東西嗎?如果您需要更多信息,請告訴我!

+0

通過,如果你是從服務器接收JSON(用好頭)你不應該來解析的方式,迴應應是一個Javascript對象已經 –

回答

1

要訪問以這種方式,你需要使用數組表示法的屬性。試試這個:

var currentgroup = getSelectedGroupName(); // Returns a string like: 'actualvalue'; 
console.log(global_grouplist[currentgroup]) 
+0

這完美的作品。非常感謝您的幫助! – streetlight

2

隨着該行

var currentgroup = actualvalue 

你給的actualvaluecurrentgroup當前值,不要使二者元素會朝相同的屬性點!

如果你想使用currentgroup作爲一個變量的佔位符,你應該使用這樣的:

var currentgroup = 'actualvalue'; 
console.log(global_grouplist[currentgroup]); 

這樣,你分配所需的屬性作爲字符串的名稱currentgroup並用括號標記訪問您的對象的相應屬性。

+0

這太棒了!謝謝你的解釋,這是非常有幫助的。但是,如果我使用實際值的函數(var currentgroup = functionGettingActualValue()) - 這是如何改變的? – streetlight

+0

@streetlight只要函數以字符串的形式返回屬性標識符,它就不會改變任何東西。 – Sirko

+0

沒關係 - 我只是用你的記號,意識到我做錯了。非常感謝您的耐心和幫助! – streetlight