无法检索以前在jQuery中传递的id

时间:2014-12-23 13:23:11

标签: jquery ajax

我实际上有这个代码:

$("#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

感谢。

1 个答案:

答案 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}}的值。