DataTables按单元格中的文本计算行数

时间:2017-04-19 18:10:53

标签: javascript jquery datatables

我有一个简单的DataTable,当用户点击该行时,我会添加一个名为selected的类:

$("#datatable-buttons tbody").delegate("tr", "click", function (event) {
     var $row = $(event.target);
     if ($row[0].tagName !== "TR") $row = $row.parent();
     $row.toggleClass("selected");
     if (event.ctrlKey === false) {
        $row.toggleClass("selected");
        $row.siblings().removeClass("selected");
     }
});

在同一个函数中,我试图计算第二列与---不同的行

var clickedD = 0;
table.rows('.selected').every(function () {
      if (this.cell('.selected', 1).data() != "---")
          clickedD++;
 });

但是当选择了多个行时,它只计算此类的第一行。有没有办法获得所选行的行数(具有类selected),每行的第二个单元格与---不同?

1 个答案:

答案 0 :(得分:2)

您可以使用row().data()数组。并且更多地使用API​​。这是一个更简化的版本:

table.on('click', 'tbody tr', function() {
  table.row(this).nodes().to$().toggleClass('selected');
  var count = 0;
  table.rows('.selected').every(function() {
    if (table.row(this).data()[1] !== '---') count ++;
  })
  $('#count').text(count+' selected rows with #2 col different from ---')
})

演示 - >的 http://jsfiddle.net/q6d8wqLk/

如果你有一个基于JSON的dataSource,你可以使用

if (table.row(this).data().secondColData !== '---') count ++;

仅供参考delegate() is now deprecated