不知道发生了什么。
从$ .ajax成功消息中获取对象,将它们存储在新数组中以传递给插件,插件使用数据但报告不能在我上面的标题中使用属性“ID”。
在for循环结束时停止并指向控制台中for循环的第一行。它克隆了数据和一切。在工作之后什么都没有。
$ .ajax()
中的代码段var suppliers = [];
for(var i=0; i<5; i++){
suppliers[i] = msg.d[i];
}
$.fn.appendSnapshots(suppliers);
失败的地方
$.fn.appendSnapshots = function(snapshots) {
var accumulatedHeight = $("#suppliersTable").height();
var IDsShowing = new Array();
for (var i=0; i<snapshots.length; i++){
if($("#supplierStatusDataRow\\." + snapshots[i].ID).length == 0){
var $supplierStatusDataRow = $("#supplierStatusDataRow").clone(false)
$supplierStatusDataRow.css('z-index', 1);
$supplierStatusDataRow.find("*[id]").andSelf().each(function() { $(this).attr("id", $(this).attr("id") + "." + snapshots[i].ID); });
$("#supplierStatusDataDiv").append($supplierStatusDataRow);
$("#statusSupplierName\\." + snapshots[i].ID).append(snapshots[i].SupplierName);
$("#statusSupplierNumber\\." + snapshots[i].ID).append(snapshots[i].SupplierNumber);
$("#statusHostNumber\\." + snapshots[i].ID).append(snapshots[i].HostNumber);
$("#statusSupplierType\\." + snapshots[i].ID).append(snapshots[i].SupplierType);
$("#statusRecievedReportStatus\\." + snapshots[i].ID).append(snapshots[i].RecievedReportStatus);
$("#statusBarCode\\." + snapshots[i].ID).append(snapshots[i].BarCode);
$("#statusNumberOfUsers\\." + snapshots[i].ID).append(snapshots[i].NumberOfUsers);
$("#statusOnBoardStatus\\." + snapshots[i].ID).append(snapshots[i].OnBoardStatus);
$("#statusSupplierEmail\\." + snapshots[i].ID).append(snapshots[i].SupplierEmail);
$("#statusPrimaryBuyer\\." + snapshots[i].ID).append(snapshots[i].PrimaryBuyer);
$("#statusLastPODate\\." + snapshots[i].ID).append(snapshots[i].LastPODate);
$("#statusPOMTD\\." + snapshots[i].ID).append(snapshots[i].POMTD);
$("#statusPOYTD\\." + snapshots[i].ID).append(snapshots[i].POYTD);
$supplierStatusDataRow.css('top', accumulatedHeight);
$supplierStatusDataRow.animate({opacity: 1}, 500);
}
else{
$("#supplierStatusDataRow\\." + snapshots[i].ID).animate({top: accumulatedHeight}, 500);
}
IDsShowing.push(parseInt(snapshots[i].ID));
accumulatedHeight += $("#supplierStatusDataRow\\." + snapshots[i].ID).height() - 1;
}
$("#supplierStatusDataDiv").find('[id^="supplierStatusDataRow\\."]').each(function(i){
var splitID = $(this).attr("id").split(".");
if($.inArray(parseInt(splitID[1]), IDsShowing) == -1){
$("#supplierStatusDataDiv").find('[id^="supplierStatusDataRow\\.' + splitID[1] + '"]').animate(
{opacity: 0},
500,
function() { $("#supplierStatusDataRow\\." + splitID[1]).remove();
});
}
});
totalHeight = $("#supplierStatusRadioDiv").height() + $("#supplierStatusNameDiv").height() + $("#supplierStatusSlider").height() + accumulatedHeight;
$("#suppliersSnapshot").animate({height: totalHeight}, 500);
$("#supplierStatusDataDiv").animate({height: accumulatedHeight}, 500);
}
答案 0 :(得分:2)
听起来好像是在for
循环中看过数组的末尾。尝试:
for(var i=0; i< msg.d.length; i++){
suppliers[i] = msg.d[i];
}