我正在使用 lis 获取 <li>
的列表从我的 DOM 中,在每个 LI 中,并在 ajax 调用后更新 projectPhoto。但我在回调函数中的“li”总是指lis
中的最后一项,有什么办法可以克服这个问题,或者比如传递值?
p/s:我很确定之前已经讨论过这个问题,只是我无法用正确的术语来表达它。提前道歉。
var lis = $('.porject_list li');
for (var i = 0; i < lis.length; i++) {
var li = lis.eq(i);
var projectId = li.attr('data-project-id');
$.get("/webapi/projects/projectphoto/" + projectId, function (res) {
$("img", li).attr('src', res);
});
}
最佳答案
您可以尝试这个(只需将 ajax
调用包装在函数中)
(function(current){
$.get("/webapi/projects/projectphoto/" + projectId, function (res) {
$("img", current).attr('src', res);
});
})(li);
更新:
我没注意到var li = lis.eq(pos);
,这是什么,反正你可以用
var li = lis[i];
获取循环中当前的li
。
关于jquery - 将div元素传递给成功回调jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17823401/