用 jquery 写了一个控件的 ajax 请求,发现 post 方法里的$(this) 出问题了,原文
$(".btn-onoff").click(function(){
$.post("test", { onoff: $(this).html(), id: $(this).parent('div').attr("id")}, function(data,status){
$(this).html(data);
});
});
结果没返回任何内容,用 alert 看了下结果是 undefined,在 stackoverflow 上查了一下,然后改用建议的方式:
$(".btn-onoff").click(function(){
var $this = $(this); //TODO why this
$.post("test", { onoff: $this.html(), id: $this.parent('div').attr("id")}, function(data,status){
$this.html(data);
});
});
结果正确了,想问下为什么 jq 里的 post 中直接写$(this) 无效呢?