我的标题可能措词不正确,对此我感到抱歉。本质上,我想做的是:
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