2014-02-08 280 views
0

我想參數化我的JavaScript例程,以便我可以傳遞要從我的JSON接口返回的列表中填充的字段名稱。 即我想將我的getRoutes()函數(下面)轉換爲getTable(),並傳遞表名「Routes」和我希望它使用的字段「routeId」。 「路由」顯然不是問題,因爲它只是傳遞給我的JSON API,但是如何將「routeId」放入代碼? java有像getDeclaredField這樣的東西,那是什麼javascript?我認爲這是getValue,因爲在如何通過字符串名稱訪問JavaScript對象字段,爲javascript獲取字段名稱getDeclaredField

items.push("<option>" + val.getValue(keyName) + "</option>"); 

但這沒有奏效。

下面是我想概括我原來工作的代碼,

function getRoutes(){ 
    $.getJSON("/GeeREST/Entity?entity=Routes", 
     function(data) { 
     var items = []; 

     $.each(data, function(key, val) { 
      items.push("<option>" + val.routeId + "</option>"); 
     }); 
    ... 

這裏就是我想要做的

function getTable(tableName,keyName){ 
    $.getJSON("/GeeREST/Entity?entity="+tableName, 
      function(data) { 
      var items = []; 

      $.each(data, function(key, val) { 
       items.push("<option>" + val.getValue(keyName) + "</option>"); 
      }); 
... 
+0

是'data [keyName]'你在找什麼? –

+0

不知道,但我認爲方括號可以做到這一點。你可以做'var fieldname =「routeid」; var value = val [fieldname]'。那是你正在嘗試做什麼? – Johnride

+0

@Matt你揍我;) – Johnride

回答

1

下面是一個簡單的解釋:

var a = { 'b':1,'c':2}; 
$.each(a, function(key,val) { 
    console.log(key,val,a[key]); 
}); 
// Outputs: 
// b 1 1 
// c 2 2 

所以基本上val等於[key],key是我們迭代的對象的key, S o在你的情況下,你應該使用val [keyName]。

+0

做得好。非常感謝。 –

相關問題