jquery - 将div元素传递给成功回调jquery

标签 jquery ajax callback

我正在使用 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/

相关文章:

javascript - jquery AJAX序列化GET请求中的重复参数

javascript - 带有文件 url 的 WKWebView xmlhttprequest

Android SyncAdapter 回调

java - 使用 CompletableFuture 进行回调

java - JNA回调的使用方法

jquery - chrome/safari 中的简单 AJAX 查询提供了不那么简单的调试情况

javascript - 检查空数组时如果出现条件问题

javascript - JavaScript 中对 socket.io 的订阅过多

javascript - 延迟 jQuery 的 handlerOut

ajax - Angular 6 : http get response