Javascript jquery如何传递上一次迭代中的变量?
我有一个通过对象的每个循环 在其中,我创建了一些图像,我想把上一次迭代中的图像引用数据放入其中 例如:Javascript jquery如何传递上一次迭代中的变量?,javascript,jquery,image,recursion,iteration,Javascript,Jquery,Image,Recursion,Iteration,我有一个通过对象的每个循环 在其中,我创建了一些图像,我想把上一次迭代中的图像引用数据放入其中 例如: .each((function(some_data){ return function(i, obj){ var prev='???'; // how do I retrieve the value from the last cycle? var image=new Image(); image.data('prev',prev); prev
.each((function(some_data){ return function(i, obj){
var prev='???'; // how do I retrieve the value from the last cycle?
var image=new Image();
image.data('prev',prev);
prev=image;
// how do I pass the value to next cycle?
}})(some_data));
每次调用之前,都要在外部作用域中定义变量
var prev=null;
collection.each(function(idx, val){
alert("Prev should have value from previous iteration (or null):" + prev);
var image=new Image();
image.data('prev',prev);
prev=image;
})(some_data));
在jquery的每个作用域中使用一个全局值
myloopingvar=null;
.each((function(some_data){ return function(i, obj){
if(loopingvar !=null)
{// do stuff
}
var image=new Image(); image.data('prev',prev); loopingvar=image }})(some_data));
把你的
prev
定义从每个块中去掉。哦,我从来没想过。。。但这听起来是个好主意!我是否可以在不使用返回函数()的情况下从中传递I和obj变量?是的,我认为不需要函数包装器。如果您必须等待图像加载到此循环中,那么事情将变得更加困难。全球的。哎呀。(当使用var
方法时,根据另一个答案,当代码有希望在另一个函数中时,它不会污染窗口
)@pst由于全局命名空间问题,直到一夜的bug搜索,人们才开始欣赏仔细的范围界定:p