JQUERY AJAX - 如果成功则更改 $(this) 的类

标签 jquery ajax

我有一个div。在该 div 内我有多个元素。有些元素具有“myClass”类。我也有一个按钮。单击时,foreach 循环会针对 div 中具有类 myClass 的每个元素运行。为每个元素发送一个ajaxCall。这些元素的文本颜色默认为黑色。如果 ajax 调用成功。我想删除 classBlackFont 类并添加一个 classGreenFont 。我尝试了以下代码,不幸的是,即使 ajax 调用成功,也没有切换类。

$("#someDiv .myClass").each(function() {

    var ajaxData = "myAjaxData";
    $.ajax({
        type: "POST",
        url: "somefile.php",
        data: ajaxData,
        success: function(data) {

            $(this).removeClass('classBlackFont').addClass('classGreenFont');
        }
    });

});​

最佳答案

this 不会自动引用 ajax 回调中的正确对象。您可以通过关闭确实具有正确值的变量来更改它:

$("#someDiv .myClass").each(function() {
    var $this = $(this);
    var ajaxData = "myAjaxData";
    $.ajax({
        type: "POST",
        url: "somefile.php",
        data: ajaxData,
        success: function(data) {
            $this.removeClass('classBlackFont').addClass('classGreenFont');
        }
    });

});​

或使用context option of $.ajax() :

$("#someDiv .myClass").each(function() {
    var ajaxData = "myAjaxData";
    $.ajax({
        type: "POST",
        url: "somefile.php",
        data: ajaxData,
        context: this,
        success: function(data) {
            $(this).removeClass('classBlackFont').addClass('classGreenFont');
        }
    });

});​

关于JQUERY AJAX - 如果成功则更改 $(this) 的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10298756/

相关文章:

jquery - 我如何获得子 div 并使用 jquery 设置位置?

javascript - 处理表单时使用 AJAX 未捕获 TypeError

ajax - 我希望我的选择下拉列表自动用Grails网站中的Ajax填充

jquery - 如何使 jQueryUI 图标显示为禁用?

ajax - googlebot 的动态内容

java - Spring MVC 中的多个多部分文件 - Ajax

php - 通过 Javascript 访问 HTTP GET 请求

javascript - Chrome 应用程序将 JSON 作为字符串读取

javascript - Jquery 在表中单击时更改按钮的文本

php - 使用可滚动条 Jquery 限制返回结果