我的头衔可能不完整,我很抱歉。基本上,我想要做的是:
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
我将如何实现这一目标?
答案 0 :(得分: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
演示:Fiddle