值未保存到数组中

时间:2013-11-18 23:04:13

标签: javascript jquery arrays

我对javascript和jquery很新。我目前有一个xml文件,我试图通过使用jquery和javascript解析,但由于某种原因,我存储在数组上的值没有被保存。

var categories = new Array();  // Array for the categories

var data = {
  categories: []
};

var sources = [
{
  src:'',
  title: '',
  desc: ''
}];

var i = 0;

$.get('fakeFeed.xml', function (info) { 
  $(info).find("item").each(function () { 
     var el = $(this);
    var categoryName = el.find('category').text();
    var p = categories.indexOf(categoryName);

    sources[i] = [];
    sources[i].src = el.find('media\\:content, content').attr('url');
    sources[i].title = el.find("title").text();
    sources[i].desc = 'Moscone Center';

     if( p == -1) {
      categories.push(categoryName);
      var category = {
        name: categoryName,
        videos: []
      };
    }
    i++;
  }); 
});

如果我执行console.log(类别),它会打印阵列上的所有类别,但如果我执行console.log(categories.length),我会一直得到0 ......

console.log(categories.length); // This should be outputting 5 but I keep getting 0 for the size.
for (var i=0; i<categories.length; i++) {
  var category = {
    name: categories[i],
    videos: []
  };
}

我感谢任何人都可以给我的任何帮助。感谢

1 个答案:

答案 0 :(得分:2)

$.get函数是异步的,因此您应该尝试将日志记录放在回调函数中。

$.get('fakeFeed.xml', function (info) { 
  $(info).find("item").each(function () { 
    ....
  }); 
  console.log(categories.length);
});
相关问题