ajax回调函数使用this异常

在ajax请求后使用$(this)抛出 Uncaught TypeError: Cannot read property 'createDocumentFragment' of undefined 异常,原因是此时的this并不DOM对象,可以使用ajax上下文,或者传递引用的方法解决。


function editTable(url,obj){
var oldValue = obj.text();
var htmlText = "";
var attr = obj.attr("id");
obj.html(htmlText);
obj.keydown(function(event){
if(event.keyCode==13){
var newValue = $(obj.children()[0]).val();
if(newValue!=oldValue){ //判断两次的值是否相等,不相等则发送ajax请求
var id = obj.parent().data("id");
var thisForm = obj[0];
$.ajax({
url:base+url,
type:"post",
data:{"id":id,"newValue":newValue,"attr":attr},
dataType:"json",
async:true,
success:function(data){
$(thisForm).children().remove();
$(thisForm).text(newValue);
},
error:function(data){
alert(data.msg);
}
});
}
}
});
}



var thisForm = obj[0];  obj是$(this),必须在回调函数前赋值

你可能感兴趣的:(jsp,ajax,异常,函数)