我的标题可能措词不正确,对此我感到抱歉。本质上,我想做的是:

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'
与第一次运行一样,将bluh(x1)的值添加到'wow'(newc的初始值)
第二次它将bluh(x2)的新值添加到'x1wow'(因为现在是newc的值)以返回newc = x2x1wow

我将如何实现?

最佳答案

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

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

演示:Fiddle

10-06 02:26