在我的应用中,显示可用的时段(用于预约)。我想添加一个课程' take'到已经采取的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调用,如果一个插槽的结果是“#39;”,则添加“'”'相应的。它执行ajax调用部分,但是将类添加到表中的所有td元素,而不仅仅是采用的那些元素。
check-availability.php,返回'拍摄'在浏览器中调用它但没有任何反应。此外,当条件更改为 result.status ===" notTaken" 时,所有s都会添加到“'
”类中我该如何解决这个问题?
答案 0 :(得分:0)
$("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');
};
}
});
});
请参阅此内容以获取更多参考: $(this) inside of AJAX success not working
答案 1 :(得分:-1)
而不是成功,请尝试使用.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');
};
});
`