2015-10-15 26 views
1

我越來越:使用動態參考JSON對象參數

Uncaught TypeError: Cannot read property '0' of undefined

雖然試圖動態參考使用參數JavaScript對象。雖然當我嘗試傳遞單個參數virtual_page_no它正在工作,但它開始給出錯誤,同時傳遞2個參數。

// Json list 
var patients = { 
    "patient_1": [ 
     { 
      "page_no": "3", 
      "quest_response_headline": "Question1", 
      "quest_response": "Response1", 
      "quest_next_link": "View Answer" 
     }, 
     { 
      "page_no": "4", 
      "quest_response_headline": "Question2", 
      "quest_response": "Response2", 
      "quest_next_link": "Next Question >" 
     } 
    ] 
} 

var current_virtual_page = 0; 
var next_virtual_page = current_virtual_page + 1; 

function quest_response_text(i, virtual_page_no) { 
    var quest_response_headline = patients.patient_i[virtual_page_no].quest_response_headline; 
    var quest_response = patients.patient_i[virtual_page_no].quest_response; 
    var quest_next_link = patients.patient_i[virtual_page_no].quest_next_link; 

    $('.quest-response-headline').text(quest_response_headline); 
    $('.quest-response').text(quest_response); 
    $('.quest-next-link').text(quest_next_link); 
} 

// init 
quest_response_text(1, current_virtual_page); 

// When user click on view answer or next question link 
$('.quest-next-link').on('click', function() { 
    quest_response_text(next_virtual_page); 
}); 

回答

1

如果你想使用i可變patients.patient_1動態訪問,請嘗試使用:

patients['patient_' + i] 

所以它應該是這樣的:

var quest_response_headline = patients['patient_' + i][virtual_page_no].quest_response_headline;