我有一个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/