开发者问题收集

计算具有特定字符串的数据表行数

2018-08-06
929

如何计算包含特定文本的数据表行数? 我尝试使用 filter(),但不起作用。

$("#buttonAlert").on("click", function (event) {

  var count = $("#example1").DataTable.rows
    .column(4)
    .data()
    .filter(function (value, index) {
      return value = "OK" ? true : false;
    }).length;

  alert('Total OK is: ' + count);

});

错误如下:

ssar:391 Uncaught TypeError: Cannot read property 'column' of undefined
    at HTMLButtonElement.<anonymous> (ssar:391)
    at HTMLButtonElement.dispatch (jQuery-2.1.4.min.js:3)
    at HTMLButtonElement.r.handle (jQuery-2.1.4.min.js:3)
2个回答

尝试下面的方法,我根据列值相等性将行推送到 matchedRows 数组...

  var matchedRows = [];
  var table = $('#table_id').DataTable();
  var data = table.data().toArray();
  data.forEach(function(row) {
    row.forEach(function (column) {
      if (column == "Row 1 Data 1") {
        matchedRows.push(row);
      }
    })
  });
  console.log(matchedRows.length);
Sivakumar Tadisetti
2018-08-06

您需要使用 columns()eq(4) 方法,例如

var count = 0;
$("#example1").DataTable.columns().eq(4).each( function ( index ) {
    var column = $("#example1").DataTable.column( index );
    var value = column.data();
    if(value === 'OK'){
      count++;
    }
});

console.log('length'+count);
Ankit Agarwal
2018-08-06