我想知道单词出现在我的表格中的次数(DataTables)
var numberOccurence = $('tr > td:nth-child(2):contains("'+ word +'")').length;
问题是它只能看到表格的可见部分, 也就是说,如果DataTables上有10个页面,它只会给出第一页上出现的次数
怎么做?
修改 这是Html
<div class="table-row">
<div class="table-responsive">
<table id="fileTable" class="table table-striped table-bordered">
<thead>
<tr>
<th>Date</th>
<th>Localisation</th>
<th>User</th>
<th>Like</th>
</tr>
</thead>
<tbody>
<?php foreach ($orders as $order) { ?>
<tr>
<td><?= $order['date'] ?></td>
<td><?= $order['localisation'] ?></td>
<td><?= $order['user'] ?></td>
<td><?= $order['like'] ?></td>
</tr>
<?php } ?>
</tbody>
</table>
</div>
</div>
答案 0 :(得分:2)
假设您使用的是DataTables插件,则可以使用data()
// Column name to search
var colName = 'columnName';
// Column index to search
var colIndex = 2;
var term = 'word';
// Get reference of DataTables API
var tbl = $('#myTable').DataTable();
// Get data (array of rows)
var data = tbl.data();
// Use filter function to search for term
var occurence = data.toArray().filter(function(row) {
// If data is array of objects
return row[colName].indexOf(term) !== -1;
// If data is array of strings
return row[colIndex].indexOf(term) !== -1;
}).length;
您可以查看有关data()
的文档答案 1 :(得分:1)
您已接近,但请使用$
API方法和:contains
选择器:
var count = table.$('td:contains("'+ term +'")').length;
演示 - &gt;的 http://jsfiddle.net/mLqreyfg/ 强>
$():对整个表执行jQuery选择操作