1

我的标题可能措辞不完美,对此我深表歉意。本质上,我想要做的是:

newc = 'wow'
    jQuery(".bleh").each(function(i){
       var bluh = *this changes with everytime this statement is run. lets call it x1, x2 and so on*
       var newc = bluh + newc
    });

假设 .each() 函数只运行了两次(因为有两个元素的类为“bleh”)。我newc现在需要'x2x1wow'
与第一次运行时一样,它将值 if bluh (x1) 添加到'wow'(newc 的初始值)
第二次将 bluh (x2) 的新值添加到'x1wow'(因为那是 newc 现在的值)返回newc = x2x1wow

我将如何实现这一目标?

4

1 回答 1

2

您需要在函数外部创建变量,否则函数退出时任何更改都将丢失:

var newc = 'wow'
jQuery(".bleh").each(function(i)
{
   var bluh = *this changes with everytime this statement is run. lets call it x1, x2 and so on*
   newc = bluh + newc
});

问题出在each回调中,您的变量newc被声明为局部变量,该变量将在每次迭代中重置。您需要修改在newc循环外声明的闭包变量,因为您可以删除var回调函数中的

演示:小提琴

于 2013-07-22T03:17:13.773 回答