jQuery函数返回未定义

时间:2013-01-20 16:34:18

标签: jquery json undefined

  

可能重复:
  Variable doesn’t get returned from AJAX function

我有这个功能:

   function getCompanyName(companyID) {

        $.getJSON('http://www.domain.com/' + companyID + '.json', function(companyData) {
            $.each(companyData, function(i,item){   
                result = item.name;
            });         
            return result;
        });
   };

如果我将其称为getCompanyName(13),结果为undefined,如果我访问www.domain.com/13.json,我会得到以下结果:

[
  {
    id: 13,
    category_id: 2,
    name: "Company Name",
    phone: "333-333-3333",
    address: "Address",
    description: "Description",
    logo_url: "/system/businesses/logos/000/000/013/thumb/G13.jpeg?1348191485"
  }
]

有人可以告诉我这里做错了什么吗?

1 个答案:

答案 0 :(得分:1)

getCompanyName()函数将以非常快的速度执行。早在ajax请求完成之前。 所以,如果你写这样的东西:

var a=getCompanyName(companyID);,结果将是未定义的,因为响应尚未从服务器返回。(尽管您已经退出 getCompanyName()函数)

长话短说,你需要做好准备直到ajax响应完成(直到getCompanyName(companyID)功能完成, - 删除return result并放置所需的所有功能处理回调函数内的结果/或从中调用其他函数....