我在html表中有这样的代码:
我必须根据服务器返回的数据添加或删除每个td的类highlight
:
$("body").on("click","table#idnum tbody tr td",function(event){
var tdid = this.id;
var url = '...server url ..........';
var data = {tdid:tdid};
$.ajax({
url,
data: data,
type:"POST",
dataType: "json",
success: function(data){
if(data.returnval==0){
this.removeClass('highlight');
}else{
this.addClass('highlight');
}
}
});
上面的代码经过测试,发现它可以根据来自page(tdid)的get值更改关注mysql字段的字段值,但不能根据返回的回调数据添加/删除td
的类( returnval 0或1)。我认为用于突出td
的选择器在我上面的代码中是不对的。
请告诉我如何通过添加类td
来突出显示highlight
如果returnval为1,或者如果returnval为0则删除突出显示td
删除类'highlight'?< / p>
注意:我不能使用td
的任何类来通过选择该类来添加或删除类。
答案 0 :(得分:2)
你需要尝试,
// this will not work in success callback
if(data.returnval==0){
$('#'+tdid).removeClass('highlight');//use td id
}else{
$('#'+tdid).addClass('highlight');
}
答案 1 :(得分:2)
有两个问题。
首先,当调用AJAX clone
函数时,success
与原始事件处理函数不同。您可以使用this
context:
选项将其传递给:
$.ajax
其次,context: this,
是一个DOM元素,而不是jQuery对象,所以你需要使用this
来使用jQuery方法。