我如何在jQuery上引用该对象?

我正在创建一个脚本,每个函数内部都有一个ajax调用。 问题是,在从ajax调用成功回调时,我想使用我们在每个函数中使用的对象。

编辑:这是我的一些代码:

configs={ general:{ max_ads:6}, logs:{ selector:"div#MicrodualGetAd-debug"}, connection:{ type:"POST", url:"http://www.microdual.com/api/microdualgetad", cache:false, timeout:20000, dataType:"json", data:{ adget_id:null, adget_session:null, client_action:null}, error:function(r,s,e){ MicrodualGetAdLog("Ajax-Error: "+s+"\n"); } } }; $("div.MicrodualGetAd").each(function(){ configs.connection.data.adget_id = $(this).attr("rel"); configs.connection.data.client_action = "view"; configs.connection.data.success = function(d,s,r){ $(this).hide(); alert("'OK'"); if(d.hackattemp.status){ MicrodualGetAdLog("MicrodualGetAd-Error: "+d.hackattemp.msg+"\n"); $(this).append(d.hackattemp.msg); } } $.ajax(configs.connection); }); 

您需要在each回调中保存此值。

 $("#hello").each(function() { var that = this; $.ajax({ url: "www.mysite.com/mypage", success: function(d) { hello.call(that); } }); })​ 

另外,你应该不同地检查d的值; 或

 if (typeof d === 'undefined' && d !== '') ... 

或简单地说

 if (d) ... 

编辑1:这应该有效,假设您遇到的唯一问题是获得正确的值:

 $("div.MicrodualGetAd").each(function() { var $this = $(this); configs.connection.data.adget_id = $this.attr("rel"); configs.connection.data.client_action = "view"; configs.connection.data.success = function(d, s, r) { $this.hide(); alert("'OK'"); if (d.hackattemp.status) { MicrodualGetAdLog("MicrodualGetAd-Error: " + d.hackattemp.msg + "\n"); $this.append(d.hackattemp.msg); } } $.ajax(configs.connection); });​