javascript/object无法迭代
javascript/object not able to itereate
所以,我从一个php页面中得到了一个对象,它吐出了我所拥有的JSON。当我将一个全局变量设置为我从中创建的对象,然后尝试使用for(obj中的键)循环获取数据时,它似乎不起作用。
如果我用一个类似于随机$.post的东西围绕for循环,它就会起作用。我很困惑为什么会发生这种事。
这是我的代码:
var myObj1 = new Object;
$(document).ready(function() {
$.post('namenums.php', {num : 1}, function(data) {
var temp = $.parseJSON(data);
for(var key in temp) {
myObj1[key] = temp[key]['firstname'] + ' ' + temp[key]['lastname'];
}
});
getStuff();
thing();
});
function thing() {
for(var key in myObj1) {
console.log(key);
}
}
现在,如果我把thing()函数改成这样,它就可以工作了。
function thing() {
$.post('random.php', function(data) {
for(var key in myObj1) {
console.log(key);
}
});
}
那么,有人能解释一下为什么会发生这种情况吗?
当然。在第一个示例中,当文档准备好时调用thing()
,而不一定是在$.post
启动的AJAX调用完成之后。在第二个示例中,在AJAX请求结束、完成并返回结果之前,您不会尝试记录任何内容。
您可以通过在提供给$.post
:的回调中将调用移动到thing()
来修复第一个示例
$(document).ready(function() {
$.post('namenums.php', {num : 1}, function(data) {
var temp = $.parseJSON(data);
for(var key in temp) {
myObj1[key] = temp[key]['firstname'] + ' ' + temp[key]['lastname'];
}
thing();
});
getStuff();
});
相关文章:
- 如何在javascript中迭代数字列表
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 如何迭代Array.prototype函数
- 如何使用jquery迭代具有相同属性的html元素并查找onclick事件
- 在ejs-partial中对JSON对象进行迭代
- 如何在DataTables 2.1中迭代对象数组
- 使用递归属性迭代保留属性结构
- 正在停止.在jquery中的特定时间间隔内,每次迭代的每次执行
- 如果30秒未单击,请应用CSS一次,将其删除,然后重新迭代
- 主干-从模板中迭代的集合中获取特定的模型
- 创建一个方法,通过一个窗口进行迭代并获取Titanium中的所有控件
- 什么's是在javascript中迭代项的最佳方式
- 为什么这只是迭代 HTMLCollection 的奇怪元素
- 是否“;对于的“;循环迭代遵循JavaScript中的数组顺序
- javascript/object无法迭代
- Javascript (Angularjs)帮助迭代object中的数组
- 迭代javascript object和valueOf toString方法
- jQuery tmpl if object value ==当前迭代值
- 迭代Ajax调用并将所有数据存储在angularjs中的object中
- 完成后,这个 Object.keys(o).forEach(..) 迭代在节点.js GC 键中