2009-08-08 9 views
0

Voici mon objet JSON.jQuery AJAX erreur json

{ 
     "verbs" : [ 
     "process", 
     "refine", 
     "define" 
     ], 
     "adjectives" : [ 
     "process", 
     "audio", 
     "language" 
     ], 
     "subjects" : [ 
     "process", 
     "development", 
     "technique"  
      ] 
} 

Voici ma tentative d'accéder et de traiter les données via la méthode jQuery AJAX.

jQuery.ajax({ 
    type : "POST", 
    dataType : "json", 
    url : "js/tsbtw-object.js", 
    success : function(data, statusText){ 

     var verbArray = data.verbs; 

     for(var i = 0; i<verbArray.length; i++){ 

      var verbTime = Math.floor(Math.random()*1000); 

      jQuery("#verb-content").fadeOut(verbTime, function(){ 
       (this).text(verbArray[i]).fadeIn(verbTime); 
      }); 
     } 

    }, 
    error: function (xhr, ajaxOptions, thrownError){ 
     alert(xhr.statusText); 
     alert(thrownError); 
    } 
}); 

Je reçois deux erreurs dans la console FireBug.

étiquette non valides " verbes": [\ n

this.Text est pas une fonction (ce) .text (verbArray [j]) fadeIn (verbTime); \ n

I. Je me suis levé assez tard pour essayer de résoudre ce problème, et j'ai pensé que j'allais chasser la communauté pour avoir un aperçu.

Merci!

Répondre

2

Essayez $(this).text au lieu de (this).text. Notez également que comme vous êtes dans un rappel ajax this pointe vers les options de la requête ajax, la fonction text peut ne pas être définie. Au lieu de cela, vous pouvez essayer avec:

var _this = this; 
jQuery.ajax({ 
    type : "POST", 
    dataType : "json", 
    url : "js/tsbtw-object.js", 
    success : function(data, statusText){ 
     var verbArray = data.verbs; 
     for(var i = 0; i<verbArray.length; i++){ 
      var verbTime = Math.floor(Math.random()*1000); 
      jQuery("#verb-content").fadeOut(verbTime, function(){ 
        $(_this).text(verbArray[i]).fadeIn(verbTime); 
      }); 
     } 
    }, 
    error: function (xhr, ajaxOptions, thrownError) { 
     alert(xhr.statusText); 
     alert(thrownError); 
    } 
}); 
+0

non, dans ce cas, $ (this) pointe sur $ ('# verb-content'), pas sur les options de la requête ajax. – pixeline