【发布时间】:2015-11-24 22:05:13
【问题描述】:
这可能是一个非常简单的问题,但尽管有很多“谷歌搜索”,我还是找不到解决方案:
我想在 jquery 每个循环中扩展一个数组。但是在循环完成后,数组再次为空。这是我的代码 sn-p:
var myarr = [];
var sum = 0;
$("#myDomListElement").each(function(i) {
myarr.push(i);
sum += sum + 1;
alert("I have added " + i");
});
在此循环结束时,sum 的值 > 0,具体取决于循环迭代的次数。但是 myarr 在循环结束时是空的。如果我调试代码,我可以看到 myarr 每次迭代都会变得越来越大,但是一旦循环完成,myarr 就会再次为空。 (警报显示迭代已完成)。
主类型和数组有什么区别,有没有办法将元素推入每个循环内以在每个循环外使用?
最好的问候,
史蒂夫
【问题讨论】:
-
but as soon as the loop is completed the myarr is empty again.是什么让你这么想? -
您的代码按原样工作。 (如果错字的双引号被删除)
-
您的代码在这里工作得很好:jsfiddle.net/jfriend00/Lvvxrjhj 在用额外的引号修复了一个错字之后。
-
双引号是一个复制粘贴错误——这里不相关。但为了更好的能见度,我清理得太多了。实际上,我使用了 $("#myListParent li .myclass").each... 而不是仅 $("#myDomElement").each... 这不起作用。如果我使用 Ziv Weissmann 建议的类,它就可以工作。但是为什么...???
-
好吧,这似乎是我的浏览器的问题。我无法重现小提琴中的问题,当 Firebug 调试器稍后显示一些奇怪的行为时,我重新启动了 Firefox,现在一切都按预期工作。不好意思,好像是我的环境。史蒂夫