2015-10-15 2 views
1

я получаю:Динамически эталонный объект JSON с использованием параметров

Uncaught TypeError: Cannot read property '0' of undefined

При попытке динамически ссылаться на объект JavaScript с помощью параметров. Хотя, когда я пробовал передавать один аргумент virtual_page_no, он работал, но он начал выдавать ошибку при передаче двух параметров.

// 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

Если вы хотите, чтобы динамически получать доступ patients.patient_1 используя i переменную, попробуйте:

patients['patient_' + i] 

так это должно выглядеть так:

var quest_response_headline = patients['patient_' + i][virtual_page_no].quest_response_headline; 
Смежные вопросы