【发布时间】:2011-09-29 18:15:09
【问题描述】:
assemblyEl 已正确创建(1.jpg、2.jpg、3.jpg),但 ajax 请求始终发送最后一个 id(3)。
为什么会发生这种情况以及如何解决?
var assemblies = [{id:1},{id:2},{id:3}];
for (var a in assemblies) {
var assembly = assemblies[a];
var assemblyEl = $('<img src="' + assembly.id + '.jpg" />')
.click(function () {
$.ajax({
type: "POST",
url: url,
data: { id: assembly.id },
async: false,
success: function (data) {
}
});
});
}
【问题讨论】:
-
程序集必须是这种格式吗?
-
等等,你的意思是你不想发送 id 3?
-
请停止在数组上使用
for...in循环。它们速度慢且不稳定。 -
@Matt,你建议使用什么?
-
for(var i = 0;i<assemblies.length;i++)...如果坚持使用a,可以改变量名。
标签: javascript jquery