1

私は 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);
            });
    }
4

3 に答える 3

2

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ループ内の電流を取得します。

于 2013-07-24T01:00:52.490 に答える
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);
    }); 
}); 
于 2013-07-24T01:01:59.360 に答える