我对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: []
};
}
我感谢任何人都可以给我的任何帮助。感谢
答案 0 :(得分:2)
$.get
函数是异步的,因此您应该尝试将日志记录放在回调函数中。
$.get('fakeFeed.xml', function (info) {
$(info).find("item").each(function () {
....
});
console.log(categories.length);
});