2016-08-18 3 views
0

Ich bin neu in Javascript und Jquery, versuchen zu lernen, hier habe ich diesen Code Werte in das Array zu schieben, wenn ich versuchte, length es zeigt mir 0.Array Länge leer

Ich weiß, dass es führe da raus, aber ich verstehe immer noch nicht, was es eigentlich bedeutet, kann mir jemand helfen?

$.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 außerhalb des Schnipsel Aufruf $, so kommt es vor Erfolg Funktion abgeschlossen ist. Versuchen Sie 'setTimeout (function() {console.log (pokemon_array.length);}, 1000);' oder verschieben Sie das Konsolenprotokoll am Ende in die Erfolgsfunktion. – mkaran

+0

Timeout ist keine Lösung, es ist nur ein Test, und ich schlug vor, nur zu sehen, was passieren wird, so dass es besser ist, MuthaFury, wie das alles funktioniert :) – mkaran

Antwort

1

Du nennst console.log(pokemon_array.length) außerhalb des success Rückruf, so ist es tatsächlich aufgerufen, bevor die Ajax-Aufruf erfolgt.

-1

Hier http://api.jquery.com/jquery.ajax/

über success und complete Parameter lesen.

Einfaches Beispiel:

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

Während dieser Link die Frage beantworten kann, ist es besser zu integrieren die wesentlichen Teile der Antwort hier und bieten den Link als Referenz. Nur-Link-Antworten können ungültig werden, wenn sich die verknüpfte Seite ändert. - [Aus Bewertung] (/ review/low-quality-posts/13377759) – dakab

+0

@dakab Aber Dokumentation ist die beste Antwort für einfache Fragen :( – ventaquil

+0

Sicher ist es. Aber wenn die Dokumentation nicht verfügbar ist, macht es einen Link- antworten Sie einfach nutzlos, indem Sie ein einfaches Beispiel (wie das, das Sie hinzugefügt haben) (http://stackoverflow.com/posts/39013761/revisions)) machen, das es viel hilfreicher macht. – dakab