【发布时间】:2018-11-09 15:37:56
【问题描述】:
我正在尝试从 ajax 的 JSON 响应中获取数据,当我尝试在循环之外获取数据时没有问题(console.log 命令有效),但是当它在里面时会出错
TypeError: 无法读取未定义的属性“TOTALITEM”
console.log 命令给出了上述错误。同样的情况发生在第二个“orc[i].NITEM”上,但它起作用了,我不知道为什么。 我还尝试对这些值求和并附加在第二位,但它也没有用。如果有人能解释为什么会这样,我将非常感激。谢谢!!
var obj= JSON.parse(data);
var orc = obj.DADOS.ORCITENS[0].ITENSORC.LITEM;
var tamanho = orc.length;
var total=0;
$(".lista-orcamento").empty();
console.log(orc[0].TOTALITEM);
for(var x = 0; x <= tamanho; x++)
{
console.log(orc[x].TOTALITEM);
total+= parseFloat(orc[x].TOTALITEM);
}
console.log(total);
for(var i = 0; i <= tamanho; i++)
{
$(".lista-orcamento").append
('<div class="row produtos" >'+
'<div class="col-1">'+orc[i].NITEM+'</div>'+
'<div class="col-1"> <input type="text" class="form-control codigo" value='+orc[i].CODPRODUTO+'></div>'+
'<div class="col-1"> <input type="text" class="form-control quantidade" value='+orc[i].QTDVENDIDO+'></div>'+
'<div class="col-3"> <input type="text" class="form-control descricao" value='+orc[i].DESCRICAO+'></div>'+
'<div class="col-1">'+
'<select class="form-control prcu">'+
'<option value="001">'+orc[i].PRCUNIT+'</option>'+
'</select></div>'+
'<div class="col-1"> <input type="text" class="form-control prcv" value='+orc[i].PRCVENDA+'></div>'+
'<div class="col-1"> <input type="text" class="form-control desco" value='+orc[i].DESCPUNIT+'></div>'+
'<div class="col-1"> <input type="text" class="form-control prct" value='+orc[i].TOTALITEM+'></div>'+
'<div class="col-1"> <input type="text" class="form-control descot" value='+orc[i].DESCVUNIT+'></div>'+
'<div class="col-1"> <input type="text" class="form-control obs" value='+orc[i].OBSITEM+'></div>'+
'</div>'
);
}// fim do for
}//fim sucesso
【问题讨论】:
-
请提供一个最小、完整和可验证的示例:stackoverflow.com/help/mcve 我们需要查看
data的示例或您如何获取数据。 -
追溯未定义的内容。 Orc[0] 很可能是未定义的。展示什么是兽人来安慰。如果它是未定义的,回到它的部分。最终你会找到问题的根源。
-
json结果是一个复杂的嵌套列表。这里TOTALITEM可能不是obj.DADOS.ORCITENS[0].ITENSORC.LITEM的成员。如果您想描述转换后的 json 列表的结构,可以为您提供建议
标签: javascript jquery json ajax