(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替换,但它不会发生。
我缺少什么?
答案 0 :(得分: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);
}
});
答案 1 :(得分:0)
jquery的html函数处理所有myclass的替换 所以你只需要进行ajax调用并传递响应
$.ajax({
url: "myPHP.php?app",
method: 'GET'
}).done(function(response){
$('.myclass').html(response.app)
});