2013-09-26 5 views
0

Le code ci-dessous fonctionne très bien, sauf pour la non défini ennuyeux que je reçois lorsque des éléments dynamiquement récupérés annexant à partir d'un tableau multidimensionnel JSON. Je ne pouvais pas comprendre d'où il vient, cependant, je suppose qu'il vient de déclarer une fonction externe variable et l'utiliser à l'intérieur $.each() pour accumuler des données.

var c = 0; 
var q = 1; 
$.each(json, function (i, data) { 
    var answers; // declared here and outside this function - same results. 
    $.each(data.answers, function (i, a) { 
    answers += '<tags>' + a + '</tags>'; // the problem is here "maybe". 
    }); 
    $('.foo').append(answers); // I get "undefined" ahead of values retrieved. 
}); 

Playground

+3

'var réponses' doit sortir des deux appels'. .each', sous 'var q'. –

+0

@RoryMcCrossan Le formatage était désactivé. J'ai corrigé le retrait. – user2246674

+0

Vous conseille d'utiliser un moteur de template javascript, comme [Handlebars] (http://handlebarsjs.com/) ou [JsRender] (https://github.com/BorisMoore/jsrender), ou un autre choix. Votre code sera beaucoup plus propre –

Répondre

10

Vous obtenez 'undefined' en avance sur vos résultats parce que vous utilisez += et commencez avec une variable answers non définie. Essayez de déclarer var answers = '';.

+0

Vous avez raison. J'ai eu un échec cérébral momentané:> – user2246674

+0

Vous l'avez, merci :) – Omar

Questions connexes