数组长度保持为0,即使我按下'objects'到它
Array length remains 0 even though I push 'objects' to it
我有一小段代码,从服务器读取一些ajax(这一点有效)。
var self = this;
var serverItems = new Array();
var playersOnlineElement = $("#playersOnline");
function DataPair(k, v) {
this.key = k;
console.log("new datapair: " + k + ", " + v);
this.value = v;
}
DataPair.prototype.getKey = function() {
return this.key;
}
DataPair.prototype.getValue = function() {
return this.value;
}
$.getJSON("http://127.0.0.1", function(data) {
$.each(data, function(key, val) {
var pair = new DataPair(key, val);
self.serverItems.push(pair);
});
});
console.log(serverItems.length); //Problem is here
for (var i = 0; i < serverItems.length; i = i + 1) {
var dpair = serverItems[i];
if (dpair.getKey() === "playersOnline") {
self.playersOnlineElement.text("Players Online: " + dpair.getValue());
}
}
数据和JSON被加载,但当他们被推到数组它似乎不工作。我试了试自己。serverItems和只是serverItems,因为netbeans向我展示了变量的范围是好的,如果我只使用serverItems,但我有点困惑,为什么这不起作用。有人能帮我吗?
我在错误的地方加了注释。serverItems。长度为0,即使在DOM树中的浏览器中调试时,它有一个包含所有数据的数组serverItems。
假设这个serverItems在另一个范围内,而不是我想要获得长度时调用的那个?
将此代码添加到success部分,因为它是异步的…
for (var i = 0; i < serverItems.length; i = i + 1) {
var dpair = serverItems[i];
if (dpair.getKey() === "playersOnline") {
self.playersOnlineElement.text("Players Online: " + dpair.getValue());
}
……
$.getJSON("http://127.0.0.1", function(data) {
$.each(data, function(key, val) {
var pair = new DataPair(key, val);
self.serverItems.push(pair);
for (var i = 0; i < serverItems.length; i = i + 1) {
var dpair = serverItems[i];
if (dpair.getKey() === "playersOnline") {
self.playersOnlineElement.text("Players Online: " + dpair.getValue());
}
});
});
相关文章:
- 当从jquery的点击事件中的每个循环创建的数组到它之外时,它显示空白数组
- jQuery 限制选择器到它的父级
- 我下一次怎样才能拿到它's 14:00
- 设置一个下拉填充到它's的值和文本在AngularJS和asp.net webApi中的编辑模式
- I'我在css中做了一些隐藏的东西,我可以'I don’我现在点击按钮时看不到它
- 悬停菜单关闭孩子时,当我尝试将鼠标移动到它时.为什么?[JsFiddle]
- Angular 2 即使没有导航到它也能保持路线活动状态
- JavaScript来更改CSS类,而不是附加到它
- Javascript 如果键在数组中然后设置它,否则添加到它
- 在新窗口中打开链接,或者聚焦到它(如果已经打开)
- 当本地 JSON 文件实际存在时,找不到它
- 如何将字母从变量隔离到它自己的变量中,停止在单词长度处
- 如何将渐变的底部锚定到它在 HTML5 画布中填充的容器
- 如何将数据从 chrome 扩展程序传递到它使用 window.open 打开的网页
- 构建一个网格并使用jQuery捕捉到它
- 我怎样才能告诉 jquery 到 html( ) 一个元素在动态更改之前到它的原始值
- 为什么其他对象更改会反映到它从中复制的对象
- 如何修改这个 jQuery 脚本,该脚本仅在用户向下滚动到它时才对数字进行计数
- jQuery计算项目在可滚动窗口中的位置并滚动到它
- 数组长度保持为0,即使我按下'objects'到它