2009-08-16 9 views
2

xmlで選択したデータを読み込むためのajax呼び出しがあります。AJAXをJqueryでロードする

私は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

あなたは完全な機能の中で応答を利用できません。これを試してみてください:

$.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

+0

代わりに$(resp).findを試してください。私はすぐにiphone – karim79

+0

@mathewbから完全に答えることができません。遅れて申し訳ありませんが、その違いは、jQueryオブジェクトにラップされた後、jQueryメソッドを呼び出すことができる点です。私は私の答えに私の最後のコメントにした提案を反映しました。 – karim79

0

完全コールバックは2つの引数に渡されます。 jQueryのドキュメント

(成功とエラーコールバックが実行された後に)要求が完了したときに呼び出される関数から

。この関数は、XMLHttpRequestオブジェクトと要求の成功のタイプを説明する文字列の2つの引数を渡します。これはAjaxイベントです。

関数(XMLHttpRequest、textStatus){ this; //このajaxリクエストのオプション }

関連する問題