【问题标题】:Passing div element to success callback jquery将 div 元素传递给成功回调 jquery
【发布时间】:2013-07-24 00:45:50
【问题描述】:

我正在使用 lis 从我的 DOM 中获取<li> 的列表,并在每个 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);
            });
    }

【问题讨论】:

标签: jquery ajax callback


【解决方案1】:

你可以试试这个(只需将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

【讨论】:

    【解决方案2】:

    你使用了 jquery,所以你可以使用 jquery 的$.each。如果有帮助,请尝试此代码

    $(".porject_list li").each(function(i, elem) {
        var projectId = $(this).attr('data-project-id');
        var $li = $(this);
        $.get("/webapi/projects/projectphoto/" + projectId, function (res) {
             $li.find("img").attr('src', res);
        }); 
    }); 
    

    【讨论】:

      【解决方案3】:

      我认为这对你来说是一个很好的参考。

      http://api.jquery.com/each/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-16
        • 2013-10-07
        • 2011-07-15
        • 2011-09-02
        相关资源
        最近更新 更多