嵌套的Ajax调用。在新的ajax cakk上循环通过id

时间:2015-05-04 06:17:56

标签: jquery ajax

我正在使用Instagram的api并获得评论我必须抓住帖子的ID并将其传递到评论api的网址然后。我正在做的是将id分配给一个数据属性,然后在ajax comments函数中调用它。由于某种原因,id不会在第二个ajax调用上循环,它会一直调用相同的id。我做错了什么?

/********************************
             List Media
     ********************************/
    $.ajax({
        type: 'GET',
        dataType: 'jsonp',
        cache: false,
        url: urls.media,
        success: function (media) {
            for (var i = 0; i < 20; i++) {

                var iglist = media.data[i];

                var media_template =
                    '<div class="media-container" data-media-id="' + iglist.id + '">'+
                        '<div class="image-wrapper"><img width="100%" src="' + iglist.images.standard_resolution.url + '"/></div>'+
                        '<div class="comments-wrapper"></div>'+
                    '</div>';

                $('#results-container').append(media_template);


                /********************************
                             Comments
                 ********************************/
                $(iglist).each(function() {
                    $.ajax({
                        type: 'GET',
                        url: 'https://api.instagram.com/v1/media/' + iglist.id + '/comments?access_token=' + accessToken,
                        dataType: 'jsonp',
                        cache: false,
                        success: function (comments) {

                            for(c = 0; c < 20; c++) {

                                var cdata = comments.data[c];

                                console.log(cdata);

                                var comments_template =
                                    '<li data-comment-id="' + cdata.id + '">' +
                                    '<div class="user-photo"><img src="' + cdata.from.profile_picture + '" </div>' +
                                    '<div class="user-text">' + cdata.text + '</div>' +
                                    '</li>';

                                    //$('.comments-wrapper').append(comments_template);

                            }
                        },

                        error: function (comments) {
                            //alert('No comments at this time');
                        }
                    });
                });
            }
        },

        error: function (data) {
            alert('No images at the time');
        }

1 个答案:

答案 0 :(得分:1)

iglist不是变量而不是jquery对象使用$.each

 /********************************
                 List Media
         ********************************/
        $.ajax({
            type: 'GET',
            dataType: 'jsonp',
            cache: false,
            url: urls.media,
            success: function (media) {
                for (var i = 0; i < 20; i++) {

                    var iglist = media.data[i];

                    var media_template =
                        '<div class="media-container" data-media-id="' + iglist.id + '">'+
                            '<div class="image-wrapper"><img width="100%" src="' + iglist.images.standard_resolution.url + '"/></div>'+
                            '<div class="comments-wrapper"></div>'+
                        '</div>';

                    $('#results-container').append(media_template);


                    /********************************
                                 Comments
                     ********************************/
                    $.each(media.data,function(index,val) {
                        $.ajax({
                            type: 'GET',
                            url: 'https://api.instagram.com/v1/media/' + val.id + '/comments?access_token=' + accessToken,
                            dataType: 'jsonp',
                            cache: false,
                            success: function (comments) {

                                for(c = 0; c < 20; c++) {

                                    var cdata = comments.data[c];

                                    console.log(cdata);

                                    var comments_template =
                                        '<li data-comment-id="' + cdata.id + '">' +
                                        '<div class="user-photo"><img src="' + cdata.from.profile_picture + '" </div>' +
                                        '<div class="user-text">' + cdata.text + '</div>' +
                                        '</li>';

                                        //$('.comments-wrapper').append(comments_template);

                                }
                            },

                            error: function (comments) {
                                //alert('No comments at this time');
                            }
                        });
                    });
                }
            },

            error: function (data) {
                alert('No images at the time');
            }