2013-11-22 22 views
2

當動態地嘗試基於變量檢索對象行時,我遇到了一個問題。以下情況會有什麼好的解決辦法?在javascript對象選擇器中使用變量

function getDetails(id) { 
    completeID = "event" + id; 
    title = eventDetails.completeID.title; 
} 

var eventDetails = { 
    'event1': { 
     'title': 'Lisbon Earthquake', 
      'content': "Test Content", 
    }, 
     'event2': { 
     'title': 'Falling Stars', 
      'content': 'Test Content' 
    } 
}; 

回答

1

在你的方法試試這個 -

function getDetails(id) { 
    completeID = "event" + id; 
    title = eventDetails[completeID].title; 
} 

爲對象屬性可以使用square bracket notation進行訪問。

請注意,在getDetails函數中,您聲明的變量不帶關鍵字var(除非它們已被定義爲全局變量)。這會將它們創建爲全局變量,並且以這種方式使用全局變量被認爲是一種非常糟糕的做法。嘗試聲明它們如下 -

function getDetails(id) { 
    var completeID = "event" + id, 
     title = eventDetails[completeID].title; 

    // do whatever you want with the title 
} 
+1

這樣做了!我會盡快將它標記爲答案。謝謝! – Adam