使用each()对值求和
Sum values using each()
我试图返回值的总和每次选择之一被改变。但总和总是错的:
$('select').change(function () {
a = 0;
$('select').each(function () {
a += parseInt($('option:selected').val(), 10);
});
$('h1 span').html(a);
});
http://jsfiddle.net/vAu3E/$('select').change(function () {
var a = 0;
$('select').each(function () {
a += parseInt(this[this.selectedIndex].value, 10);
});
$('h1 span').html(a);
});
JSFiddle
使用this.value
(比重新获得一个jQuery对象更快,当你已经有它),并声明a
,所以它不是全局的(我也调用处理程序,所以你的结果立即显示):
$('select').change(function () {
var a = 0;
$('select').each(function () {
a += parseInt(this[this.selectedIndex].value, 10); //originally this.value
});
$('h1 span').html(a);
}).change();
http://jsfiddle.net/vAu3E/10/查看IE版本中this.value
的潜在问题
使用sum插件,您将有:
$('select').change(function () {
$('h1 span').html($('option:selected').sum());
});
FIDDLE: http://jsfiddle.net/abdennour/vAu3E/18/
<标题>注意您使用val
方法,因为您的元素是option
标记。但是,如果它是DIV内容元素的总和,例如,您必须使用html
方法而不是val
:
所以,sum插件仍然有用:
$('div.operators').sum('html');
标题>我建议:
$("select").on("change", function(){
var a = 0;
$("select").each(function(){
a += parseInt($(this).val());
});
$('h1 span').html(a);
});
小提琴
显然结果是正确的,因为您必须将"option:selected"替换为:
a += parseInt($(this).val(), 10);
如果你输入"option:selected"选择器是第一个选择器,而不是$(this)你得到每个选择的值…
希望这个评论对你有所帮助…再见
有一个替代parseInt
;加上+
将把'numeric '字符串转换为数字:
$('select').change(function () {
var a = 0;
$('select').each(function () {
a += +this.value;
});
$('h1 span').html(a);
});
WORKING JSFIDDLE DEMO
相关文章:
- jquery.each(第2行)添加背景色
- 如何使用jQuery each分离字符串中的元素
- 如何在php中的jquery中对循环内的选择框值求和
- 如何在jquery中使用实时计算求和值
- {{#each}}内部的Handlebar帮助程序
- 为什么我可以在Array属性对象中找到Javascript Array for Each方法
- Jquery.each数组推送不起作用
- 尝试求和时,在我的表的页脚中返回$NaN
- 调用$.each()函数时上下文发生变化
- 鉴于 for..在构造中,库提供的函数(如 jQuery.map() 或 _.each())有什么用
- Underscore each to update collection
- Rails:试图在javascript(Google Charts API)中嵌入一个adv-ruby(each+迭代器
- Javascript For each json
- 在键值对中对求和值进行下划线
- 如何按对象数组进行分组和求和
- jQuery each()没有'使用OOP方法是行不通的
- 替换.each语句中字符串中的字符
- this内部的值返回this.each(function(){})
- 如何使用jquery对货币格式的数字求和
- 使用each()对值求和