0

我通过 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 控制台中,它显示为 returnedData[1] 未定义(如预期的那样)。但是使用if(typeof returnedData[1].diagnosis !== 'undefined'){似乎不起作用。有任何想法吗?

4

2 回答 2

2

returnData是你的对象数组。由于该数组中只有 1 个对象,returnData[1]未定义 => 您无法访问returnedData[1].diagnosis,它会抛出异常。它应该是:

if(typeof returnedData[1] !== 'undefined'){
于 2013-09-10T08:36:11.550 回答
0

试试这个:

returnedData[0] && $('#diagnosis_l1').text(returnedData[0].diagnosis);
returnedData[1] && $('#diagnosis_l1').text(returnedData[1].diagnosis);
于 2013-09-10T08:41:36.163 回答