Javascript 在$.post函数中访问$(this)?

Javascript 在$.post函数中访问$(this)?,javascript,jquery,html,ajax,this,Javascript,Jquery,Html,Ajax,This,我在访问帖子中的$this函数时遇到了很多问题 我只想根据响应删除对象类 $.post("url.php?"+theData, {}, function(response){ etc..... 它可以与静态ID一起工作,但我更愿意操作$this这是来自异步事件的回调,因此指向元素的this丢失 您需要保留对该元素外部元素的引用。一种方法是通过立即执行的函数绑定它: $('#something').on('click', function() { $.post('somewhere

我在访问帖子中的$this函数时遇到了很多问题 我只想根据响应删除对象类

  $.post("url.php?"+theData, {}, function(response){  etc.....

它可以与静态ID一起工作,但我更愿意操作$this

这是来自异步事件的回调,因此指向元素的this丢失

您需要保留对该元素外部元素的引用。一种方法是通过立即执行的函数绑定它:

$('#something').on('click', function() {
    $.post('somewhere.php').done((function(el) { return function(response) {
        $(el).removeClass('someClass');
    }; })(this));
});

这是来自异步事件的回调,因此指向元素的This将丢失

您需要保留对该元素外部元素的引用。一种方法是通过立即执行的函数绑定它:

$('#something').on('click', function() {
    $.post('somewhere.php').done((function(el) { return function(response) {
        $(el).removeClass('someClass');
    }; })(this));
});
试一试

试一试

此变量始终指向当前上下文对象

var obj = { // declare object
  a: 2,

  b: function (p) { 
    alert(this.a + p); // here 'this' will point to obj if it was run by 'obj.b();' 
  }
};

obj.b(2); // call it's method
您也可以设置当前的“this”:

var s = { a: 3 };

var obj = {
  a: 2,

  b: function (p) { 
    alert(this.a + p); // here 'this' will be s 
  }
};

obj.b.call(s, 2);
例如,如果在另一个f2中使用两个函数,并且f1的上下文应该在f2中可用,那么最简单的方法是将其存储在变量中

$(buttonSelector).click(function () {
  var button = $(this);

  $.post(url, function (data) {
    //here button is available
  };
});
此变量始终指向当前上下文对象

var obj = { // declare object
  a: 2,

  b: function (p) { 
    alert(this.a + p); // here 'this' will point to obj if it was run by 'obj.b();' 
  }
};

obj.b(2); // call it's method
您也可以设置当前的“this”:

var s = { a: 3 };

var obj = {
  a: 2,

  b: function (p) { 
    alert(this.a + p); // here 'this' will be s 
  }
};

obj.b.call(s, 2);
例如,如果在另一个f2中使用两个函数,并且f1的上下文应该在f2中可用,那么最简单的方法是将其存储在变量中

$(buttonSelector).click(function () {
  var button = $(this);

  $.post(url, function (data) {
    //here button is available
  };
});

如果您正在执行类似$'element.clickfunction{$.post{的操作,则需要在post之前存储对$this的引用,以便您可以在函数中引用它,如$'element.cilckfunction{var me=$this;$.postrl.php?+数据,{},functionresposne{//me现在是$this;};};这可能只是一个范围问题,但是发布更多的代码,也许可以使用变量来代替,但您的代码示例现在没有显示任何内容?如果您正在执行类似$'element.的操作,请单击函数{$.post{您需要在post之前存储对$this的引用,以便在函数中引用它,如$'element'。cilckfunction{var me=$this;$.postrl.php?+数据,{},functionresposne{//me现在是$this;};};这可能只是一个范围问题,但发布更多代码,也许可以使用变量,但您的代码示例现在什么都没有显示?