Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jquery的列总和_Javascript_Jquery_Html - Fatal编程技术网

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
      。请记住,根据规范,所有输入元素,无论其
      类型如何
      ,其值始终在
      字符串类型中
    • .each(calculateSum)
      链接到您的原始选择,以便您在第一次加载页面时也计算总和,即('input',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.
    全部的
    
    您遇到了哪些错误?可能重复。