2017-05-04 62 views
0

我有一個對象,看起來像這樣:無法訪問對象的屬性變量

var set_1 = { 
    id: 'set_1', 
    nameofSet : 'English fruits', 
    category: 'languages', 
    cards : [ 
     { 
      front : 'apple', 
      back : 'jablko' 
     }, 
     { 
      front : 'orange', 
      back : 'pomarancza' 
     }, 
     { 
      front : 'pear', 
      back : 'gruszka' 
     } 
    ] 
} 

現在有一個功能:

$('#chooseSet').on('click', '.setName', function() { 
    var setName = this.getAttribute("data-set-name"); 
    editCards(setName); 
}); 

這是HTML:

<div class="setName" data-set-name="set_1">English fruits</div> 

它給參數setNameeditCards函數看起來像這樣:

editCards(setName) { 
    console.log(setName); // logs "set_1" 
    console.log(setName.cards); // logs "undefined" - why? 
    console.log(set_1.cards); // logs the `cards` array from `set_1'. 
    // code 
} 

需要setName參數。

我的問題是 - 爲什麼第二個console.log給我的console.log`示例是cards' array as it does in the third

+1

'的console.log(窗口[的setName] .cards)' –

回答

4

因爲任何屬性的值都是一個字符串。所以在你的情況下,data-set-name返回字符串"set_1",這不是對變量set_1的引用。如果您set_1變量是全球性的,你應該能夠做到這一點,而不是 -

console.log(window[setName].cards)

+0

謝謝你,它的工作!只要有可能,我會在幾分鐘內接受你的回答。 – oneday