2009-08-16 82 views
2

我有這個ajax調用以xml載入選擇的數據。使用jquery載入AJAX問題

我沒有收到任何JS錯誤,它在之前完成不工作,我想我沒有正確調用數據。

任何想法,我在做什麼錯了在完整的功能循環?

$.ajax({ 
    type: "GET", 
    url: "xml/classes.xml", 
    dataType: "XML", 
    beforeSend: function(){ 
    $('#classContainer').append("<p>Loading</p>");}, 
    complete: function() { 
    $(this).find('monday').each(function(){ 

      var $classdate = $(this); 
      var title = $classdate.find("class").attr('title'); 

      var level = $classdate.find("class").attr('classLevel'); 
      var time = $classdate.find("time").text(); 
      var duration = $classdate.find("time").attr("duration"); 
      var hourofday = $classdate.find("time").attr("hourofday"); 
      var location = $classdate.find("location").text(); 



      var Monhtml = '<div class="classBlock">'; 

      Monhtml += '<p class="title">' + title + '<span class="loadingPic" alt="Loading" /> ' + ' </p>'; 
      Monhtml += '<p class="infoBar"> <strong>Time:</strong>' + time + '<span class="hour">'+ hourofday +'</span><br>'+'<strong>Duration:</strong>' + duration +'&nbsp;Minutes <br>' + '<strong>Location:</strong>' + location + '<br><strong>Instructor:</strong> </p>'; 
      Monhtml += '<p class="description"> <span class="level">' + level + '</span></p>' ; 

      Monhtml += '</div>'; 


      $('#classContainer').append($(Monhtml)); 
     }); 
     } 
    }); 
}); 

完整變更至:

success: function(xml) { 
    $(xml) 

而且它加載,什麼區別?

回答

1

Your're沒有在完整的功能內提供響應。試試這個:

$.ajax({ 
    type: "GET", 
    url: "xml/classes.xml", 
    dataType: "XML", 
    beforeSend: function(){ 
    $('#classContainer').append("<p>Loading</p>");}, 
    complete: function(resp) { 
    $(resp).find('monday').each(function(){ 

      var $classdate = $(this); 
      var title = $classdate.find("class").attr('title'); 

      var level = $classdate.find("class").attr('classLevel'); 
       var time = $classdate.find("time").text(); 
       var duration = $classdate.find("time").attr("duration"); 
       var hourofday = $classdate.find("time").attr("hourofday"); 
       var location = $classdate.find("location").text(); 



      var Monhtml = '<div class="classBlock">'; 

      Monhtml += '<p class="title">' + title + '<span class="loadingPic" alt="Loading" /> ' + ' </p>'; 
       Monhtml += '<p class="infoBar"> <strong>Time:</strong>' + time + '<span class="hour">'+ hourofday +'</span><br>'+'<strong>Duration:</strong>' + duration +' Minutes <br>' + '<strong>Location:</strong>' + location + '<br><strong>Instructor:</strong> </p>'; 
       Monhtml += '<p class="description"> <span class="level">' + level + '</span></p>' ; 

      Monhtml += '</div>'; 


      $('#classContainer').append($(Monhtml)); 
     }); 
     } 
    }); 
}); 
+0

這不起作用 我也試過數據。 – matthewb 2009-08-16 14:52:32

+0

嘗試$(resp).find ...取而代之。我現在無法從iphone – karim79 2009-08-16 15:29:41

+0

@mathewb完全回答 - 抱歉,延遲,區別在於,一旦將響應包裝在jQuery對象中,您可以調用jQuery方法。我在我的回答中反映了我在上次評論中提出的建議。 – karim79 2009-08-16 17:01:20

0

完整回調被傳遞有兩個參數。

從jQuery文檔

甲功能的請求完成(成功和錯誤回調之後被執行)時被調用。該函數傳遞兩個參數:XMLHttpRequest對象和一個描述請求成功類型的字符串。這是一個Ajax事件。

函數(XMLHttpRequest,textStatus){ this; //這個AJAX請求的選項 }