我正在通过JQuery Ajax返回一个JSON数据集,然后我想用它来设置文本框的值。数据集可以为空或最多3组数据。在JQuery中我有:
$.ajax({
type: "POST",
url: "scripts/get_diagnosis.php",
data: {
case_id: caseId,
userId: user_id
},
dataType: "json",
success: function(returnedData) {
if(typeof returnedData[0].diagnosis !== 'undefined'){
$('#diagnosis_l1').text(returnedData[0].diagnosis);
}
if(typeof returnedData[1].diagnosis !== 'undefined'){
$('#diagnosis_l1').text(returnedData[1].diagnosis);
}...
JSON数据(本例中只有一个):
[{"diagnosis":"Roger 1"}]
现在,只有JSON数据中的一个设置,代码不会从Ajax成功部分开始。在Firebug控制台中,它显示为unreData [1]未定义(如预期的那样)。但是,使用if(typeof returnedData[1].diagnosis !== 'undefined'){
似乎不起作用。有什么想法吗?
答案 0 :(得分:2)
returnData
是你的对象数组。由于此数组中只有一个对象,returnData[1]
未定义=>你无法访问returnedData[1].diagnosis
,它会抛出异常。它应该是:
if(typeof returnedData[1] !== 'undefined'){
答案 1 :(得分:0)
试试这个:
returnedData[0] && $('#diagnosis_l1').text(returnedData[0].diagnosis);
returnedData[1] && $('#diagnosis_l1').text(returnedData[1].diagnosis);