【问题标题】:Access variable i foreach访问变量 i foreach
【发布时间】:2014-06-19 12:53:45
【问题描述】:

如何从 $.each 中的 $post 函数访问变量。

我的代码:

var invoice_id;

$.post("<?=base_url()?>appointments/getId",{'code':code}, function(data) {

       var Obj = JSON.parse(data);
       console.log(Obj);
       invoice_id = Obj.invoice_id;

      });

$.each(Arr,function(i,Obj){
 invoice = invoice_id;
 console.log(invoice);

});

我需要访问 $.each 函数中的 invoice_id。目前未定义。

请帮忙, 谢谢

【问题讨论】:

  • 可以把$.each放到$.Post的回调函数中
  • 你在帖子的回调中是否有 console.log(invoice_id) 以确保它在服务器的响应中没有未定义?

标签: jquery http-post each


【解决方案1】:

请注意,$.post 执行异步 HTTP (Ajax) 请求,因此结果数据应由回调函数处理。

var invoice_id;

$.post("<?=base_url()?>appointments/getId",{'code':code}, function(data) {
   var Obj = JSON.parse(data);
   console.log(Obj);
   invoice_id = Obj.invoice_id;

   $.each(Arr,function(i,Obj){
     invoice = invoice_id;
     console.log(invoice);
   });
});

【讨论】:

  • 但是他已经全局设置了 invoice_id。他很可能从服务器收到未定义的响应。
  • @wrxsti 不是真的,$.post 是异步的,所以当时$.each 使用invoice_id,它是未定义的,将$.each 放在完成/完成回调中是正确的方法。
  • 这也很有可能。
  • @KingKing 是的,没错。
  • @wrxsti:从个人经验和浏览 SO 来看,这几乎总是问题 ;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-11
  • 2018-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多