Javascript 使用jquery的列总和
我需要使用Javascript 使用jquery的列总和,javascript,jquery,html,Javascript,Jquery,Html,我需要使用OnKeyup或OnChange 这是我的密码: $(文档).ready(函数(){ 美元(“.expenses”)。在('keyup change',calculateSum); }); 函数calculateSum(){ var$input=$(此); var$row=$input.closest('tr'); var总和=0; $row.find(“.expenses”)。每个(函数(){ sum+=parseFloat(此.value)| 0; }); $row.find(“
OnKeyup
或OnChange
这是我的密码:
$(文档).ready(函数(){
美元(“.expenses”)。在('keyup change',calculateSum);
});
函数calculateSum(){
var$input=$(此);
var$row=$input.closest('tr');
var总和=0;
$row.find(“.expenses”)。每个(函数(){
sum+=parseFloat(此.value)| 0;
});
$row.find(“.expenses_sum”).val(sum.toFixed(2));
}
sl
助教
DA
1.
2.
全部的
此时输入的“上下文”很重要:您希望更新输入元素更新所在的同一列中的总和
您可以做的是:
元素的索引.expenses
元素来完成的,以确保其父元素的
索引与您在步骤2中确定的索引匹配.expenses\u sum
元素上设置总和。这也是通过过滤所有.expenses\u sum
元素并仅获取其父
索引匹配的元素来实现的- 收听
事件。对于输入元素,为方便起见,它包括onInput
和onKeyUp
事件onChange
- 使用
防止用户错误地输入非数字字符 - 在
元素上使用.expenses\u sum
,这样用户就不会自己摆弄这笔钱了 - 记住将输入元素的值强制转换为数字。这可以通过使用
运算符来完成,即+
。请记住,根据规范,所有输入元素,无论其+此.value
,其值始终在类型如何
字符串类型中
- 将
链接到您的原始选择,以便您在第一次加载页面时也计算总和,即('input',calculateSum.).each(calculateSum)代码>。例如,当.each(calculateSum)
元素可能预先填充了来自服务器端的值(或者如果您手动定义了.expenses
)时,这非常有用value=“…”
$(文档).ready(函数(){
美元(“.expenses”)。关于('input',calculateSum)。每个(calculateSum);
});
函数calculateSum(){
//获取父``元素的索引
var cellIndex=$(this.closest('td').index();
//获取与``元素位于同一列中的费用值
var allexpensesinsSameColumn=$('.expenses').map(函数(){
if($(this).closest('td').index()!==cellIndex)
返回;
return+this.value;
}).get();
//从返回的值数组计算总和
var SUMOFESSENSENSISINSSAMECOLUMN=ALLEXPENSENSISINSSAMECOLUMN.REDUCT(函数(acc,曲线){
返回acc+curVal;
});
//在相应列中的“.expenses\u sum”元素上设置总和
$('.expenses_sum')。每个(函数(){
if($(this).closest('td').index()!==cellIndex)
返回;
this.value=同一列中的费用总和;
});
}
sl
助教
DA
1.
2.
全部的
您遇到了哪些错误?可能重复。