我在我的console.log()中获取undefined
,console.log(item.ResponseId);
这反过来导致我的$ ajax.done()函数失败,因为该值必须是返回值最初的电话。此外,console.log(msg.ResponseId);
正在按预期输出整数。
var rdetail = new Array();
$('.choiceinput').each(function (i, obj) {
rdetail.push({
"ResponseId": 0,
"ResponseDetailVal": $(this).val(),
"QuestioChoicesId": $(this).attr('id')
});
})
$.ajax({
type: "POST",
url: "/Forecaster/userResponse/",
data: data
}).done(function (msg) {
console.log(msg.ResponseId);
for (var item in rdetail) {
item.ResponseId = msg.ResponseId;
console.log(item.ResponseId);
}
console.log("Last: ");
console.log(rdetail);
$.post('/Forecaster/userResponseDetails/',
JSON.stringify(rdetail),
null, 'application/json');
})
答案 0 :(得分:5)
当您编写for( item in rdetail)
时,rdetail
的键将逐一分配到item
。由于键是字符串,因此为其分配属性不会*。
你的意思是rdetail[item].ResponseId
吗?
*它实际上将原始字符串包装在String()
对象中,为其分配属性,然后丢弃它