簡體   English   中英

javascript的push功能在這個地方不起作用

[英]push function with javascript doesn't work in this place

var members = ['herpaderpus', 'turtles_head', 'nubstep_rs', 'ardens_fide', 'newending', 'pve_bros', 'rsphilippe', 'pureismwars', 'smap51', 'iprimal_rs', 'im_mr_bloo', 'mrknowles100', 'aikohero', 'cowsbelieve', 'dombo_12', 'diovista', 'mrpixels17'];
var memberData = [];

$.each(members, function(index, member) {
    $.getJSON('https://api.twitch.tv/kraken/users/' + member + '?callback=?', function(d) {
        if(d.status == 404) {}
        else {
            var data = [];
            data[0] = member;
            data[1] = d.display_name;
            memberData.push(data[0]);
                $.getJSON('https://api.twitch.tv/kraken/streams/' + data[0] + '?callback=?', function(d) {
                    if(d.stream != null) { 
                    $( "#player" ).append( "<img src='http://pso-clan.com/twitch/lib/images/online.png'>" + "<a target='_blank' href='http://www.twitch.tv/" + data[0] + "'>" + data[1] + "</a>" + " - Viewers: " + d.stream.viewers + "<br>" );
                    }
              else {
                    $( "#offline" ).append( "<img src='http://pso-clan.com/twitch/lib/images/offline.png'>" + "<a target='_blank' href='http://www.twitch.tv/" + data[0] + "'>" + data[1] + "</a> - Offline<br>" );

                    }

            });
        }   
    });
 }); alert(memberData[0]);   

我似乎無法打電話

memberData.push(數據[0]);

在當前位置,警報只是顯示未定義。 為什么不能正確地將成員推送到memberData數組?

您實際上是不正確的-在.push()處使用就很好了(在您的第一個$.getJSON()請求的回調中)。

但是,不是在您要警告的地方,因為這是一個異步請求,因此警報會在第一個ajax請求完成之前發生。

在這里查看控制台輸出: http : //jsfiddle.net/remus/spSxE/-您將看到在任何數組推送日志記錄之前都出現了undefined

選項:

  • 重寫您的方法以使用並行ajax請求,例如此處的解決方案
  • 將必要的DOM更新功能(或對結果執行的任何操作)寫入每​​個ajax請求的回調中,以便在每次調用完成后對其進行更新。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM