我有一个简单的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
),每行的第二个单元格与---
不同?
答案 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 ++;