在每个()循环完成后调用一个函数

时间:2014-04-22 16:07:06

标签: jquery for-loop each

我在显示数组时遇到问题,该数组包含每个循环中保存的值。

这是说明我的意思的简单代码

$('.photo').each(function(){
   width_array.push($(this).width()); 
});

// when each loop is complete
for(var i =0,i<$('.photo').length,i++){
   total_width += width_array[i];
}

这里的问题是for循环在每个循环结束之前开始。

如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

我更喜欢使用for循环而不是每个函数。

for(var i=0; i<$('.photo').length; i++)
{
  width_array.push($('.photo').eq(i).width());
  if(i==($('.photo').length-1))
   {
     for(var j =0;j<$('.photo').length;j++)
      {
       total_width += width_array[j];
      }
   }
}

答案 1 :(得分:0)

我无法看到for循环在.each()循环结束之前开始。也许您忘了在width_array回调函数之前声明.each()

无论哪种方式,都可以更轻松地在total_width循环中计算.each()

var width_array = [],
    total_width = 0;
$('.photo').each(function(){
   width_array.push($(this).width()); 
   total_width += $(this).width();
});