javascript - Jquery:将同一行上的复选框的值求和到同一行上的文本字段

标签 javascript jquery html

我有一些复选框的值需要汇总。选中复选框后,值将添加到数组中并显示。这是一个演示链接:http://jsfiddle.net/maxwellpayne/gKWmB/ 但是,当我转到新行时,它会继续对我的值求和,而不是在行更改时重新开始清空数组。HTML 代码很长,因此请在提供的链接中查看它。

这是总结它们的 jquery 代码:

var total_array = new Array();
var total_amount = 0;
$("#dailyexpense input[type=checkbox]:checked ").live('change', function() {

    var check_id = $(this).attr('id');
    var valu = $(this).val();
    $("#tdtotals input[type=text]").each(function() {
        totals_id = $(this).attr('id');
        if (totals_id == check_id) {
            total_array.push(valu);
            total_amount = eval(total_array.join('+')).toFixed(2);
            $(this).val(total_amount);
        }

    });
});

我们将不胜感激

PS: 然而正在编辑 jsfiddle 中的代码并扭曲一切,停止它。

最佳答案

试试这个:

http://jsfiddle.net/gKWmB/3/

基本上我们重新考虑结构。如果复选框值发生变化,我们将获得其父行。然后我们找到该行中的所有复选框。最后我们将它们相加并显示。

//watch checkboxes
$('tr input[type=checkbox]').change( function(){   
  var total = 0;
  //total all sibling checkboxes
  $(this).parents('tr').find('input[type=checkbox]:checked').each( function() {
    total += parseInt($(this).val());        
  });

  //display the result
  $(this).parents('tr').find('input[type=text]:last').val(total);
});

关于javascript - Jquery:将同一行上的复选框的值求和到同一行上的文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7620736/

相关文章:

javascript - Canvas 正弦文本滚动条

javascript - 为什么这些解构赋值不等价?

javascript - 检查鼠标输入的元素内容

对象上的 Javascript 在 DataTable 行中不起作用

javascript - Jquery $.get ... "data"变量在 Internet Explorer 中的循环中没有改变

javascript - 如何通过 `number_entered_by_user` 事件在 Javascript 中传递 `onfocusout(number_entered_by_user)`

javascript - 无法从index.html调用javascript函数

javascript - 如何在 HTML 中使特定的下拉菜单可点击

javascript - 在后台获取 Particleground?

javascript - 了解 eval() 的用法来评估 bool 值