我实际上有这个代码:
$("#myForm").submit(function(event) {
event.preventDefault();
$.when(getDatas(this.id)).done(function(r_getDatas){
var json = $.parseJSON(r_getDatas);
alert(this.id);
});
function getDatas(id) {
return $.post("update.php", {
updateType: id,
data: $('#'+id).serializeArray()
}, "json");
}
});
如何运行此行代码:
alert(this.id);
实际上,警报说:
undefined
感谢。
答案 0 :(得分:2)
您确定this.id
中的undefined
具有正确的值(与$.when(getDatas(this.id))
不同)排在$("#myForm").submit(function(event) {
event.preventDefault();
var myID = this.id;
$.when(getDatas(myID)).done(function(r_getDatas){
var json = $.parseJSON(r_getDatas);
alert(myID);
});
行吗?
如果是这样,请尝试以下方法:
this.id
这样,您可以捕获alert(this.id)
的值并将其存储到变量中。当您使用this
console.log(variable)
可能具有不同的范围(含义)之前,该变量将保持正确的值。
在Firefox上,您可以使用以下代码检查任何给定代码位置的变量值:console.log("My ID = " + myID);
,例如:
this.id
我建议您在调用$when(getDatas(...))
之前和函数getDatas(...){...}
内检查{{1}}的值。