如何通过 jquery 引用此元素

how to refer this element by jquery

我在 html table 中有这样的 td:

我必须添加或删除每个 td 的 class highlight onclick 并基于来自服务器的 returned 数据:

$("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');
        }
    }
});

上面的代码经过测试,发现它可以根据从页面(tdid)获取值来改变关注mysql字段的字段值,但不能add/remove class td 基于 return 回调数据(returnval 0 或 1)。我认为用于突出显示 td 的选择器在我上面的代码中不正确。

所以请告诉我如何通过添加 class highlight 来突出显示 td if returnval 为 1 或删除突出显示 td if return通过移除 class 'highlight'?

val 为 0

注意:我无法通过选择 class.

来为 td 使用任何 class 来添加或删除 class

你需要试试,

// this will not work in success callback     
if(data.returnval==0){
    $('#'+tdid).removeClass('highlight');//use td id
}else{
    $('#'+tdid).addClass('highlight');
}

有两个问题。

首先,当AJAX success函数被调用时,this与原来的事件处理函数中是不一样的。您可以使用 context: 选项到 $.ajax 来传递它:

context: this,

其次,this是一个DOM元素,不是jQuery对象,所以需要用$(this)才能在上面使用jQuery方法.