AJAX 调用成功后 replaceWith 未触发

replaceWith not firing after successful AJAX call

on change 事件之后发生的第一个 replaceWith 事件运行良好。由于某种原因,我的 AJAX 调用的 success 部分中的 2 replaceWith 没有触发。我可以添加 alert("test"); 并且效果很好。不确定我在这里遗漏了什么。

$('.addsheet1').on('change', function() {
    $('.sheet1upprog').replaceWith('<i class="fa fa-spin fa-spinner"></i>'); //works fine
    var id = $('.id').val();
    var formdata = new FormData();
    jQuery.each($('.addsheet1')[0].files, function(i, file) {
        formdata.append('addsheet1', file);
    });
    $.ajax({
        url: "addsheet1only.php?id="+id,
        data : formdata,
        type : "post",
        cache: false,
        contentType: false,
        processData: false,
        success: function(data){
            if (data == 'ok') {
                alert("test"); //works fine
                $('.sheet1upprog').replaceWith('<i class="fa fa-check"></i>').delay(1000); //does not work
                $('.sheet1upprog').replaceWith('<i class="fa fa-cloud-upload"></i>'); //does not work
            }
        },
        failure: function(){
            $(this).addClass("error");
        }
    });
    return false;
});

在第一个 replaceWith 调用中,您已经删除了带有 class sheet1upprog 的标签,因此它在后续时间(在您的成功回调中)不可用。

我猜你要找的是这个 -

$(".sheet1upprog").html("<new_html_content_here>");