如何通过jquery引用这个元素

时间:2015-12-01 08:14:53

标签: jquery addclass removeclass

我在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的任何类来通过选择该类来添加或删除类。

2 个答案:

答案 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方法。