Jquery AJAX在循环中调用



在我的应用程序中,a显示可用的时间段(用于预约)。我想在已经占用的插槽()中添加一个类"占用"。为此,我编写了以下代码。

$("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调用,如果插槽的结果是"take",则将类"taked"添加到相应的中。它完成ajax调用部分,但将类添加到表中的所有td元素中,而不仅仅是已获取的元素。

check-availability.php在浏览器中调用时返回'take',但什么也没发生。此外,当条件更改为result.status=="notTake"时,所有s都被添加到类"take"

我该如何解决这个问题?

$("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)内部AJAX成功不工作

Ajax jquery成功范围

与其成功,不如尝试使用.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');
            };
        });
`

相关内容

  • 没有找到相关文章

最新更新