2017-02-15 62 views
-2
(function($) { 
    $('.myclass').each(function(){ 
     $(function() { 
      $.ajax({ 
       url: "myPHP.php?app", 
       method: 'GET', 
       complete: function(jqXHR, textStatus) { 
        var response = JSON.parse(jqXHR.responseText); 
        $('.myclass').html(response.app); 
       } 
      }); 
     }); 
    }); 
})(jQuery); 

我有myclass的多個實例,我希望每個實例都被替換爲response.app,但它沒有發生。如何在jQuery中使用多個元素的AJAX?

我在想什麼?

+0

你能得到正確的答案? –

+0

是的,我可以。它響應並工作,但僅適用於第一個元素.myclass – BrandenB171

回答

4

使用您的代碼,在來自服務器的每個響應中,您的所有.myclass都將被修改。你可以嘗試這樣的:

$('.myclass').each(function() { 
    var $elem = $(this); // <-------------- Save the element for the ajax callback 
    $.ajax({ 
    url: "myPHP.php?app", 
    method: 'GET', 
    complete: function(jqXHR, textStatus) { 
     var response = JSON.parse(jqXHR.responseText); 
     $elem.html(response.app); // <-------------- Use it 
    } 
    }); 
}); 

順便說一下,請求的URL似乎是相同的每次調用,沒有具體的參數。如果這是你的真實代碼的話,那麼你只需要做出一個請求(無.each()),並應用結果所有的元素:

$.ajax({ 
    url: "myPHP.php?app", 
    method: 'GET', 
    complete: function(jqXHR, textStatus) { 
     var response = JSON.parse(jqXHR.responseText); 
     $('.myclass').html(response.app); 
    } 
}); 
0

jquery's HTML功能處理更換了所有發生我的課 所以你只需要使阿賈克斯呼籲,並通過迴應

$.ajax({ 
    url: "myPHP.php?app", 
    method: 'GET' 
}).done(function(response){ 
    $('.myclass').html(response.app) 
}); 
相關問題