将变量添加到函数中的数组中
adding variable into an array in a function
我在将变量放入数组时遇到问题。这是我的代码:
var info = new Array();
google.load("feeds", "1");
function initialize() {
var feed = new google.feeds.Feed("http://www.ntvmsnbc.com/id/24927681/device/rss/rss.xml");
feed.setNumEntries(6);
feed.load(function(result) {
if (!result.error) {
var container = document.getElementById("feed");
var html = '';
for (var i = 0; i < result.feed.entries.length; i++) {
var entry = result.feed.entries[i];
var a = " " ;
a += entry.title;
info[i] = a
html += '<p>' + entry.publishedDate + ' ' + entry.title;
}
container.innerHTML = html;
}
alert(info[0]);
});
//alert(info[0]);
}
//alert(info[0]);
google.setOnLoadCallback(initialize);
您可以看到一个名为info的数组。我正在尝试将entry.title添加到其中。你可以看到一些地方被注释掉了。我的信息[0]为空。我只能在函数(result)中显示我的结果,只是它不会显示任何内容,就像我从未在数组中放入任何内容一样。我不明白为什么。
更新:
var info = new Array();
google.load("feeds", "1");
function initialize(cb) {
var feed = new google.feeds.Feed("http://www.ntvmsnbc.com/id/24927681/device/rss/rss.xml");
feed.setNumEntries(6);
feed.load(function(result) {
if (!result.error) {
var container = document.getElementById("feed");
var html = '';
for (var i = 0; i < result.feed.entries.length; i++) {
var entry = result.feed.entries[i];
html += '<p>' + entry.publishedDate + ' ' + entry.title;
cb(entry.title);
}
container.innerHTML = html;
}
});
}
google.setOnLoadCallback(function(){
initizalize(processInfo);}
);
function processInfo(information){
info[info.length] = information;
alert(info[info.length]);
}
最后版本
var info = new Array();
google.load("feeds", "1");
function initialize(cb) {
var feed = new google.feeds.Feed("http://www.ntvmsnbc.com/id/24927681/device/rss/rss.xml");
feed.setNumEntries(6);
feed.load(function(result) {
if (!result.error) {
var container = document.getElementById("feed");
var html = '';
for (var i = 0; i < result.feed.entries.length; i++) {
var entry = result.feed.entries[i];
var a= " ";
a += entry.title;
info[i] = a;
html += '<p>' + entry.publishedDate + ' ' + entry.title;
}
container.innerHTML = html;
}
cb(info);
});
}
google.setOnLoadCallback(function(){
initizalize(processInfo);}
);
function processInfo(info){
alert(info[0]);
}
这是因为AJAX是异步的,基本上意味着它至少要运行完其余的代码才能运行。任何依赖于AJAX调用(或任何其他异步回调)定义的东西的东西都必须在该回调内,或者其本身推迟到以后。
确保result.feed.entries.length
为非零,并且您实际上正在执行for
循环。此外(但很小)在info[i] = a
之后有一个;
也没有坏处
您不能在这些点中显示info
,因为对feed.load()
的调用是异步的,并且到那时还没有完成。
您需要在.load
回调函数中继续所有处理,例如:
function initialize(cb) {
feed.load(function(result) {
...
cb(info); // only call the callback once the data is loaded
});
}
// call the above function, passing a callback handler
google.setOnLoadCallback(function() {
initialize(processInfo);
}));
// defer all of your data processing to here
function processInfo(info) {
...
}
相关文章:
- 数组函数不适用于从元素文本创建的JavaScript数组
- 如何在javascript中求解pack数组函数
- 制作一个javascript的数组函数
- 获取元素的位置并创建它的数组函数
- 茉莉花中的 SpyOn javascript 数组函数
- 自定义数组函数不接受参数
- 使用原型的自定义数组函数.新的 MyArray(1,2,3,4) 不工作
- Java 脚本随机化数组函数
- 在 Restangular 集合上使用 lodash 数组函数
- 比较数组函数返回未定义
- Javascript中嵌套for循环与数组函数的性能
- 多维数组函数在JS中不起作用
- Javascript数组函数有我看不到的错误
- 数组函数外的javascript
- 在数组/函数中循环时使用换行符
- 拼接javascript数组函数获胜't删除项目
- 为什么不'这个js数组函数不能工作
- 如何在我自己的数组原型函数中使用数组函数
- 在javascript中定义数组函数
- Jquery动态树数组函数