当我们在ajax中获取到controller传过来的数组时, 需要对其进行遍历以获取我们想要的某个结果.
但是如果我们直接在ajax中进行遍历最后只能获取最后一个数值, 如下:
后端向前端发送一个list,接收显示为result
$.ajax({
url:"/xxx",
data:param
}).done(function(result){
for(var i=0;i<result["obj"].length;i++){
var tr = $("<tr></tr>");
var td = $("<td></td>").appendTo(tr);
td.html("<button class='btn'>"+result["obj"][i]+"</button>");
$('btn').click(function(){
console.log(result["obj"][i]);
})
}
})
这个时候控制台中只会显示遍历出来最后的值
以下是解决办法
$.ajax({
url:"/xxx",
data:param
}).done(function(result){
for(var i=0;i<result["obj"].length;i++){
var tr = $("<tr></tr>");
var td = $("<td></td>").appendTo(tr);
td.html("<button class='btn'>"+result["obj"][i]+"</button>");
$('btn').click(function(i){
return function(){
console.log(result["obj"][i]);
}
}(i))
}
})
!!!侵删