2016-08-18 77 views
0

我是新來的JavaScript和jQuery,努力學習,在這裏我有這樣的代碼值壓入陣列,當我試圖使用length它讓我看到0數組長度空

我知道有指導那裏,但我仍然不明白它實際上意味着什麼,任何人都可以幫助我?

$.ajax({ 
      url : "pokemonlist.txt", 
      dataType: "text", 
      success : function (data) { 
     var lines = data.split('\n'); 

     for(var i=0;i<lines.length;i++) { 
      var arr = lines[i].split('"'); 

      pokemon_id = arr[1]; 
      pokemon_img = arr[3]; 
      pokemon_name = arr[4]; 
      pokemon_name = pokemon_name.trim() 

      pokemon_array.push([ pokemon_id, pokemon_img, pokemon_name ]); 
     } 
      } 
     }); 

    console.log(pokemon_array.length); 
+1

的console.log是$就調用之外,所以成功函數結束之前發生。嘗試'setTimeout(function(){console.log(pokemon_array.length);},1000);'或者在最後將控制檯日誌移入成功函數中。 – mkaran

+0

超時不是一個解決方案,它只是一個測試,我建議它只是爲了看看會發生什麼,以便它更清楚MuthaFury如何工作:) – mkaran

回答

1

你調用console.log(pokemon_array.length)success回調,所以Ajax調用完成之前它的實際調用。

-1

這裏http://api.jquery.com/jquery.ajax/

閱讀successcomplete參數。

簡單的例子:

$.ajax({ 
    url: 'my-mega-link', 
    success: function (data) { 
     console.log(data); 
    } 
}); 
+0

儘管此鏈接可能回答問題,但最好包含這裏的答案的基本部分,並提供參考鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 - [發表評論](/ review/low-quality-posts/13377759) – dakab

+0

@dakab但文檔是對於簡單問題的最佳答案:( – ventaquil

+0

當然,但如果文檔不可用,它會呈現鏈接 - 只是回答無用的。編寫一個簡單的例子(像[你添加的](http://stackoverflow.com/posts/39013761/revisions))使它更有幫助。 – dakab