[英]Jquery AJAX calls in a loop
在我的应用程序中,显示可用的时隙(用于约会)。 我想将一个“ taken”类添加到已经使用的slot()中。 为此,我编写了以下代码。
$("td").each(function(){
var send = $(this).text();
$.ajax({
url:'ajax/check-availability.php',
context: this,
data:{"slot":send},
dataType:'json',
type:'get',
success: function(result){
console.log(result);
if (result.status === "taken") {
$(this).addClass('taken');
};
}
});
});
它应该执行ajax调用,并且如果slot的结果是“ taken”,则将class“ taken”添加到相应的。 它执行ajax调用部分,但将类添加到表中的所有td元素上,而不仅是采用的元素上。
在浏览器中调用check-availability.php时,它返回“ taken”,但没有任何反应。 另外,当条件更改为result.status ===“ notTaken”时 ,所有s都添加为“ taken”类
我该如何解决?
$("td").each(function(){
var that = this;
var send = $(this).text();
$.ajax({
url:'ajax/check-availability.php',
context: this,
data:{"slot":send},
dataType:'json',
type:'get',
success: function(result){
console.log(result);
if (result.status === "taken") {
$(that).addClass('taken');
};
}
});
});
请参阅此以获得更多参考: AJAX成功内的$(this)无法正常工作
而不是成功,请尝试使用.done()
例
`
$.ajax({
url:'ajax/check-availability.php',
context: this,
data:{"slot":send},
dataType:'json',
type:'get'
}).done(function(result) {
console.log(result);
if (result.status === "taken") {
$(this).addClass('taken');
};
});
`
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.