我有这个代码:
i = 60;
i = $(this).find('li a').each(function(i) {
w = $(this).text();
$('#js').text(w);
w = $('#js').width();
if(w > i) {
i = w;
}
return i;
});
Run Code Online (Sandbox Code Playgroud)
这是不对的 :-).我有X个字符串($(this).find('li a')).我想获得最长的长度(px)并将其长度保存到变量i.我稍后将在我的代码中使用.
谢谢,我很抱歉我的英文:-)
T.J*_*der 13
不要i在你给出的函数上声明一个参数each,不要从each函数返回任何内容,也不each要将结果赋给i.然后它应该工作.
i = 60;
$(this).find('li a').each(function() {
var w = $(this).text();
$('#js').text(w);
w = $('#js').width();
if(w > i) {
i = w;
}
});
Run Code Online (Sandbox Code Playgroud)
这样,您传递的功能就是each封闭i,因此可以直接访问和更新它.通过声明i作为each回调的参数,您i在每次迭代(jQuery传入的那个,它是集合中元素的索引)上处理不同的东西.另外,返回值each是您调用它的jQuery对象(docs),这显然不是您想要的.
关于闭包的更多信息,如果您不清楚它们:闭包并不复杂
在上面的代码中,我还将w变量声明为each回调的本地变量,因为我假设你没有一个w变量,你想要更新它,因此成为隐含全局恐怖的牺牲品.
| 归档时间: |
|
| 查看次数: |
10217 次 |
| 最近记录: |