如何在Jquery中迭代Table以更改内容

时间:2017-06-05 12:42:12

标签: javascript jquery html

我有这个小提琴

我的输入类型包含两个按钮+-,我想将输入值添加到表格中的所有单位值。

JS Fiddle

JQuery看起来像是

$(".commission").TouchSpin({
  min: 0,
  max: 2,
  step: 0.0001,
  decimals: 4,
  boostat: 5,
  maxboostedstep: 10,
  buttondown_class: 'btn btn-white',
  buttonup_class: 'btn btn-white'
});
$(".commission").on('touchspin.on.startupspin', function() {
  var table = $(this).parent().parent().parent().prev().find('table');
  console.log(table.rows);
})

以及您可以在小提琴中看到的HTML

2 个答案:

答案 0 :(得分:1)

我已使用以下代码更新了您的Fiddle

$(".commission").on('touchspin.on.stopspin', function() {
  var cells = $(this).parent().parent().parent().parent().find('table.cust-tbl td');
  for (var i = 0; i < cells.length; i++) {
    var $cell = cells.eq(i);
    var num = $cell.data('num');
    if (num === undefined || num == null) {
      num = $cell.text().match(/[\d.]+/);
      if (num) {
        $cell.data('num', num[0]);
      }
    }
    num = +$cell.data('num');
    if (num) {
      num += (+$(this).val());
      $cell.text($cell.text().replace(/[\d.]+/, num.toFixed(4)));
    }
  }
});

此代码将原始值存储在单元格的data属性中,并将值添加到该单元格中。

还将事件更改为stopspin,以便在选择值(向上或向下)时触发。

将舍入方法添加到4位小数.toFixed(4)

答案 1 :(得分:0)

我不知道你正在使用的插件,所以我将把我的函数放在.change()中,但是将这段代码放在每次输入更改时调用的函数中:

$('body').on('change','.commission',function(){
  var $this = $(this);
  $('.unit').each(function(){
    $(this).text(+$(this).text()+$this.val());
  });
});