我有一个div.在那个div中我有多个元素.有些元素有'myClass'类.我也有一个按钮.单击时,将为div中具有类myClass的每个元素运行foreach循环.为每个元素发送ajaxCall.默认情况下,这些元素的文本颜色为黑色.如果ajax调用成功.我想删除class 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');
}
});
});?
Run Code Online (Sandbox Code Playgroud)
Mat*_*all 13
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');
}
});
});?
Run Code Online (Sandbox Code Playgroud)
或者使用以下context选项$.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');
}
});
});?
Run Code Online (Sandbox Code Playgroud)