从JQuery For Each Loop返回数组

时间:2014-12-03 16:23:26

标签: jquery arrays foreach

我试图从每个循环中返回一些简单信息的数组而没有成功。以下是我在两个不同功能中使用的代码。

function getUser(uname, callback) {
var u = "http://itsuite.it.brighton.ac.uk/john10/ci227/a1/whois.php?username=" + uname;
return $.get(uname, {}, callback);
}

function parseUserInfo(usrname) {
getUser(usrname, function(data) {
    var x = new Array();
    $(this).find("user").each(function() {
        x['username'] = $(this).find("username").text();
        x['firstname'] = $(this).find("firstname").text();
        x['surname'] = $(this).find("surname").text();
        return x;
    }
}
}

当我像这样使用它时,我得到的一切:

var dat = parseUserInfo("guest");

使用console.log(dat)时未定义,所以有人可以告诉我这里哪里出错吗?

非常感谢!哦,顺便说一下,我已经在这里和其他地方看过其他的解决方案但是现在找不到任何适合我的方法,所以请不要这个帖子是重复的'或者'它已在这里被回答'因为这会让我回到原点,让这个问题毫无意义!

1 个答案:

答案 0 :(得分:2)

x将返回getUser()函数。您需要在x中的getUser()之外定义并返回parseUserInfo()

所以你的代码应该是这样的:

function parseUserInfo(usrname) {
  var x = new Array();
  getUser(usrname, function(data) {
    $(this).find("user").each(function() {
      x['username'] = $(this).find("username").text();
      x['firstname'] = $(this).find("firstname").text();
      x['surname'] = $(this).find("surname").text();
    });
  });
  return x;
}