使用 jQuery 求和每个函数而不使用全局变量
我想添加一些具有相同类名的 HTML 元素。
所以,使用 jQuery 的代码将是这样的。
$(".force").each(function (){
a += parseInt( $(this).html());
});
$("#total_forces").html(a);
在此代码中,变量必须是全局的。
是否有其他优雅的方法来对每个 .force 值求和,并从没有全局变量的 each 函数中获取总和?
I want to add some HTML elements that have the same class name.
So, the code will be like this with jQuery.
$(".force").each(function (){
a += parseInt( $(this).html());
});
$("#total_forces").html(a);
In this code, the variable has to be global.
Is there any other elegant way to sum every .force
value and get the sum out of the each
function without global variable?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
不想要全局吗?
Don't want a global?
您可以使用 $(".force").length,它返回 jQuery 对象中的元素数量。
jQuery API
You can use $(".force").length, it returns the number of elements in the jQuery object.
jQuery API
简而言之,不。
为什么
a
必须是全局的?它不必是全球性的。其中,可以简化为:
这里
a
是aFunc
的本地变量,并且只是它不在全局范围内的数百万个示例之一。In short, no.
Why does
a
have to be global? It doesn't have to be global.Which, can be simplified to:
Here
a
is local toaFunc
, and is just one of millions of examples of it not being in the global scope.为了方便起见,如果您经常需要相同的功能,我可能会制作一个插件。
示例: https://jsfiddle.net/tzw4mkL2/
...将像这样使用:
编辑:更改为防范
NaN
,如@Šime Vidas。还确保了parseInt()
中的基数为 10,并修复了缺失的结束}
。For convenience, if you're going to be needing this same functionality frequently, I'd probably just make a plugin.
Example: https://jsfiddle.net/tzw4mkL2/
...which would be used like this:
EDIT: Changed to guard agains
NaN
as noted by @Šime Vidas. Also ensured base-10 in theparseInt()
and fixed a closing}
that was missing.如果你不想引入全局变量,你可以使用这样的东西:
If you don't want to introduce a global variable, you could use something like this: