gpt4 book ai didi

javascript - jQuery each() - 返回值

转载 作者:搜寻专家 更新时间:2023-11-01 04:52:57 25 4
gpt4 key购买 nike

我有这个代码:

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;
});

这是错误的:-)。我有 X 个字符串 ($(this).find('li a'))。我想获取最长的一个的长度 (px),并将其长度保存到变量 i 中,稍后我将在我的代码中使用它。

最佳答案

不要在你给 each 的函数上声明一个 i 参数,不要从 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;
}
});

这样,您传递给 each 的函数是 i 的闭包,因此可以直接访问和更新它。通过将 i 声明为 each 回调的参数,您在每次迭代中处理不同的 i(jQuery 传入的那个,这是集合中元素的索引)。另外,each 的返回值是您调用它的 jQuery 对象 (docs),这显然不是您想要的。

关于闭包的更多信息,如果您不清楚: Closures are not complicated

在上面的代码中,我还将 w 变量声明为 each 回调的局部变量,因为我假设您没有 w 您想要更新它之外的变量,因此成为 The Horror of Implicit Globals 的猎物.

关于javascript - jQuery each() - 返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6483420/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com